如何在fxml项目中使用字体awesome(javafx)
我想在我的项目中使用字体字体真棒,但我不知道如何在我的项目中使用字体真棒。
我找到了一些例子,但它们不能在fxml中使用。
字体真棒javafx
我需要帮助如何使用fxml在我的项目中使用它
谢谢…
我认为这就是你需要ControlFX ,包括字体真棒支持。 请参阅javadoc以获取更多信息(但我有一天测试了它并且工作正常)
通过调整Jens Deters的方法,我实现了使用FA图标。
他的惯例针对的是反对fxml声明方式的动态组合。 尽管如此, 他的AwesomeIcon枚举 (使用unicode字符映射FA可理解的名称)非常适合我的意图。
它应该首先在main / 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); } }
不能在fxml中使用unicode字符(根据需要指定FA图标),但可以使用这些值动态设置属性。 因此,有了上面提到的枚举(AwesomeIcon),工作完成了:
-
import:
-
节点:
我最终实现了一个Icon Widget / Control / Component,用于恢复具有两个属性的代码量:
- 值: FA图标名称;
- size:标签上样式
-fx-font-size
样式属性。
新代码(效果相同):
可以在此处找到该控件的代码。 您还可以找到一个工作示例,因为它包含字体和测试代码。
我将由Mike Penz开发的Android-Iconics库移植到FX。 更新将很快跟进(文档,以及)..
showcase.jar将为您提供图标的概述。
用法( 需要Java 1.8 ):
FxIconicsLabel labelTextDefault = (FxIconicsLabel) new FxIconicsLabel.Builder(FxFontGoogleMaterial.Icons.gmd_folder_special) .size(24) .text("Right (default)") .color(MaterialColor.ORANGE_500) .build();
(或参见DialogPlayGround.java)
GitHub上的FxIconics
如果你使用SceneBuilder
试试这个。
- 首先,下载’fontawesomefx’ 。
- 其次,使用
SceneBuilder
的Jar / FXML Manager将jar导入SceneBuilder
。 - 三,Library搜索
FontAwesomeIconView
,GlyphCheckBox
,MaterialDesignIconView
,MaterialIconView
或WeatherIconView
样本FXML:
不要忘记将这些jar子添加到项目的类路径中!