jIconFont - JavaFX
jIconFont-JavaFX is a API to provide icons generated by any IconFont. These icons can be used in JavaFX.
Maven dependency
<dependency> <groupId>com.github.jiconfont</groupId> <artifactId>jiconfont-javafx</artifactId> <version>1.0.0</version> </dependency>
Usage
Example 1
IconFontFX.register(FontAwesome.getIconFont()); IconNode iconNode = new IconNode(FontAwesome.SMILE_O); iconNode.setIconSize(40); iconNode.setFill(Color.DARKGREEN);
Example 2
IconFontFX.register(FontAwesome.getIconFont()); IconNode iconNode = new IconNode(FontAwesome.SMILE_O); iconNode.setIconSize(18); Label label = new Label("Hello!"); label.setGraphic(iconNode);
Example 3
IconFontFX.register(FontAwesome.getIconFont()); IconNode iconNode = new IconNode(FontAwesome.FLOPPY_O); iconNode.setIconSize(15); iconNode.setFill(Color.BLACK); Button button = new Button(); button.setGraphic(iconNode);
Example 4
IconFontFX.register(FontAwesome.getIconFont()); IconNode iconNode = new IconNode(FontAwesome.FLOPPY_O); iconNode.setIconSize(15); iconNode.setFill(Color.BLACK); Button button = new Button("Save"); button.setGraphic(iconNode);
Example 5 (Stacked Icons)
IconFontFX.register(FontAwesome.getIconFont()); IconFontFX.register(Elusive.getIconFont()); IconNode iconNode1 = new IconNode(FontAwesome.DATABASE); iconNode1.setIconSize(26); iconNode1.setFill(Color.BLACK); IconNode iconNode2 = new IconNode(Elusive.REMOVE); iconNode2.setIconSize(14); iconNode2.setFill(Color.RED); iconNode2.setStroke(Color.WHITE); StackedIconNode stackedIconNode = new StackedIconNode(iconNode1); stackedIconNode.add(Pos.BOTTOM_LEFT, iconNode2);
Example 6 (CSS)
.myClass{ -fx-icon-size: 48px; -fx-icon-code: "FontAwesome:F25B"; -fx-fill: gray; }
IconFontFX.register(FontAwesome.getIconFont()); IconNode iconNode = new IconNode(); iconNode.getStyleClass().add("myClass");
Example 7 (Custom font)
IconFontFX.register(new IconFont() { @Override public String getFontFamily() { return "MyCustomFont"; } @Override public InputStream getFontInputStream() { return MyClass.class.getResourceAsStream("/myCustomFont.ttf"); } }); IconNode iconNode = new IconNode(); iconNode.setIconCode(new DefaultIconCode("MyCustomFont", '\u1234'));
Example 8 (Custom font + CSS)
.myCustomClass{ -fx-icon-size: 48px; -fx-icon-code: "MyCustomFont:1234"; -fx-fill: red; }
IconFontFX.register(new IconFont() { @Override public String getFontFamily() { return "MyCustomFont"; } @Override public InputStream getFontInputStream() { return MyClass.class.getResourceAsStream("/myCustomFont.ttf"); } }); IconNode iconNode = new IconNode(); iconNode.getStyleClass().add("myCustomClass");
Example 9 (Image)
IconFontFX.register(FontAwesome.getIconFont()); Stop[] stops = new Stop[]{new Stop(0, Color.YELLOW), new Stop(1, Color.RED)}; LinearGradient fill = new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, stops); Color stroke = Color.BLACK; Image image = IconFontFX.buildImage(FontAwesome.SMILE_O, 80, fill, stroke); Label label = new Label(); label.setGraphic(new ImageView(image));
License
jIconFont is distributed under the terms of the MIT license.