java - 如何在 fxml 项目中使用很棒的字体 (javafx)

标签 java javafx javafx-2 javafx-8 fxml

我想在我的项目中使用 font font awesome 但我不知道如何在我的项目中使用 font awesome。

我找到了一些示例,但它们不能在 fxml 中使用。

font awesome javafx

我需要帮助如何使用 fxml 在我的项目中使用它

谢谢。

最佳答案

我通过调整 Jens Deters's approach 实现了使用 FA 图标.

他的例程以动态图形用户界面组合为目标,与 fxml 的声明方式相反。尽管如此,his AwesomeIcon enumeration (将 FA 可理解的名称映射到 unicode 字符)完全符合我的意图。

它应该从在 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),工作就完成了:

  1. 导入:

    <?import de.jensd.fx.fontawesome.AwesomeIcon?>
    
  2. 节点:

    <Label styleClass="awesome"
           style="-fx-font-family: FontAwesome; -fx-font-size: 16.0;">
        <text><AwesomeIcon fx:constant="FILE"/></text>
    </Label>
    

我最终实现了一个图标小部件/控件/组件来恢复具有两个属性的代码量:

  1. 值:FA 图标名称;
  2. size:标签上样式 -fx-font-size 的样式属性。

新代码(效果相同):

<Icon value="FILE" size="16"/>

可以找到该控件的代码 here .您还可以找到一个工作示例,因为它包含字体和测试代码。

关于java - 如何在 fxml 项目中使用很棒的字体 (javafx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24430121/

相关文章:

java - 如何使我的 Java 应用程序具有可扩展性和容错性?

java - 启用 TimeBasedTriggeringPolicy 时 Log4j2-RollingFile 不写入

java - 对 System.err 应用监听器?

java - 将 ObservableSet 中值的存在与属性绑定(bind)

JavaFX 2 将场景的清晰快照保存到磁盘

java - TextField 中的 RequestFocus 不起作用

java - 如何使用 JVM 参数为 java.util.Calendar 指定 firstDayOfWeek

java - 在字符串中的变量周围包含引号

css - JavaFX 8 Custom RowFactory ContextMenu 背景图像不完全可见

java - 使用 Ant 和 e(fx)clipse