Je veux utiliser une police géniale dans mon projet, mais je ne sais pas comment utiliser une police géniale dans mon projet.
J'avais trouvé un exemple mais ils ne peuvent pas être utilisés en fxml.
J'ai besoin d'aide pour l'utiliser dans mon projet en utilisant fxml
Je vous remercie.
J'ai réussi à utiliser les icônes FA en adaptant approche de Jens Deters .
Ses routines ciblent la composition graphique dynamique opposée à la manière déclarative de fxml. Néanmoins, son énumération AwesomeIcon (qui mappe les noms compréhensibles FA avec des caractères unicode) convenait parfaitement à mes intentions.
Il devrait commencer par charger statiquement la police dans la classe principale/app:
public class App extends Application {
static {
Font.loadFont(App.class.getResource("/font/fontawesome-webfont.ttf").toExternalForm(), 10);
}
@Override
public void start(final Stage primaryStage) throws Exception {
URL resource = getClass().getResource("/fxml/app.fxml");
primaryStage.setScene(new Scene((Parent) FXMLLoader.load(resource), 500, 500));
primaryStage.setTitle("FontAwesomeFX demo");
primaryStage.show();
}
public static void main(String... args){
launch(args);
}
}
On ne peut pas utiliser de caractères unicode en fxml (comme nécessaire pour spécifier les icônes FA), mais peut définir des attributs dynamiques avec de telles valeurs. Par conséquent, ayant l'énumération susmentionnée (AwesomeIcon), le travail a été effectué:
L'importation:
<?import de.jensd.fx.fontawesome.AwesomeIcon?>
Le nœud:
<Label styleClass="awesome"
style="-fx-font-family: FontAwesome; -fx-font-size: 16.0;">
<text><AwesomeIcon fx:constant="FILE"/></text>
</Label>
Je finis par implémenter un Icon Widget/Control/Component pour reprendre la quantité de code avec deux propriétés:
-fx-font-size
sur l'étiquette.Nouveau code (même effet):
<Icon value="FILE" size="16"/>
Le code de ce contrôle peut être trouvé ici . Vous pouvez également trouver un exemple de travail car il comprend la police et le code de test.
J'ai porté la bibliothèque Android-Iconics, développée par Mike Penz, sur FX. Les mises à jour suivront bientôt (documents également).
Le showcase.jar vous donnera un aperçu des icônes.
Utilisation ( Java 1.8 requis ):
FxIconicsLabel labelTextDefault =
(FxIconicsLabel) new FxIconicsLabel.Builder(FxFontGoogleMaterial.Icons.gmd_folder_special)
.size(24)
.text("Right (default)")
.color(MaterialColor.ORANGE_500)
.build();
(ou voir DialogPlayGround.Java)
Si vous utilisez SceneBuilder
essayez ceci.
SceneBuilder
à l'aide du gestionnaire Jar/FXML de SceneBuilder
.FontAwesomeIconView
, GlyphCheckBox
, MaterialDesignIconView
, MaterialIconView
ou WeatherIconView
Exemple FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import de.jensd.fx.glyphs.control.GlyphCheckBox?>
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import de.jensd.fx.glyphs.materialicons.MaterialIconView?>
<?import de.jensd.fx.glyphs.weathericons.WeatherIconView?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<children>
<VBox maxHeight="-Infinity" maxWidth="-Infinity">
<children>
<Label text="FontAwesomeIconView">
<graphic>
<FontAwesomeIconView />
</graphic>
</Label>
<Label text="GlyphCheckBox">
<graphic>
<GlyphCheckBox />
</graphic>
</Label>
<Label text="MaterialDesignIconView">
<graphic>
<MaterialDesignIconView />
</graphic>
</Label>
<Label text="MaterialIconView">
<graphic>
<MaterialIconView />
</graphic>
</Label>
<Label text="WeatherIconView">
<graphic>
<WeatherIconView />
</graphic>
</Label>
</children>
</VBox>
</children>
</StackPane>
N'oubliez pas d'ajouter ces pots au chemin de classe de votre projet!
Comme l'a dit @Sedrick, vous pouvez utiliser la bibliothèque fontawesomefx et l'utiliser dans FXML comme suit:
Remarque: JavaFX 8 et FontAwesomeFx v8.9
dashboard.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://javafx.com/javafx/8.0.121"
xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.example.DashboardController"
prefHeight="760" prefWidth="1080">
<Button text="Close" AnchorPane.topAnchor="0" AnchorPane.leftAnchor="0">
<graphic>
<FontAwesomeIconView glyphName="CLOSE" glyphSize="24"/>
</graphic>
</Button>
</AnchorPane>
Vous pouvez utiliser la bibliothèque fontawesomefx en utilisant le fichier .jar dans Scene Builder et vous pouvez parcourir toutes les icônes disponibles avec navigateur Glyphe Fontawesome-fx