首页 > 解决方案 > 如何从根文件夹为 JavaFx 中的标签设置字体?

问题描述

我已将项目的字体存储在*>root*目录内的*>font*目录中。

我试过使用以下代码:

public class NewController implements Initializable {

        @FXML
        private Label titleLabel;

        @Override
        public void initialize(URL url, ResourceBundle rb) {
            titleLabel.setFont(Font.loadFont("fonts/Archivo-Regular.ttf", 30));
        }
    }  

但它不能设置字体。

标签: javafxfonts

解决方案


您可以将字体作为样式表添加到场景中

你的班

scene.getStylesheets().add(getClass().getResource("/font.css").toExternalForm());

CSS 文件

@font-face {
    font-family: 'Archivo';
    src: url('font/Archivo-Regular.ttf');
}

之后,您可以轻松地将字体添加到 CSS 中的元素中

.label {
 -fx-font-family: 'Archivo';
}

或者您可以在类中加载字体。但在使用样式之前加载字体。

班级

Font.loadFont(NewController.class.getResource("Archivo-Regular.ttf").toExternalForm(), 30);

编辑

@FXML

这是这个网站的一个小例子。

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        text.setText("My Text!");
        text.setFill(Color.RED);
        text.setFont(Font.font("Arial", FontWeight.BOLD, FontPosture.ITALIC, 24));
    }

推荐阅读