Nun*_*edo 13
我通过调整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);
}
}
Run Code Online (Sandbox Code Playgroud)
不能在fxml中使用unicode字符(根据需要指定FA图标),但可以使用这些值动态设置属性.因此,有了上面提到的枚举(AwesomeIcon),工作完成了:
进口:
<?import de.jensd.fx.fontawesome.AwesomeIcon?>
Run Code Online (Sandbox Code Playgroud)节点:
<Label styleClass="awesome"
style="-fx-font-family: FontAwesome; -fx-font-size: 16.0;">
<text><AwesomeIcon fx:constant="FILE"/></text>
</Label>
Run Code Online (Sandbox Code Playgroud)我最终实现了一个Icon Widget/Control/Component,用于恢复具有两个属性的代码量:
-fx-font-size
标签上样式的可设置属性.新代码(效果相同):
<Icon value="FILE" size="16"/>
Run Code Online (Sandbox Code Playgroud)
可以在此处找到该控件的代码.您还可以找到一个工作示例,因为它包含字体和测试代码.
我将由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();
Run Code Online (Sandbox Code Playgroud)
(或参见DialogPlayGround.java)
归档时间: |
|
查看次数: |
31870 次 |
最近记录: |