如何从根文件夹设置JavaFx中标签的字体?

时间:2019-09-24 07:01:11

标签: javafx fonts

我将项目的字体存储在*>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));
        }
    }  

但是它不能设置字体。

1 个答案:

答案 0 :(得分:5)

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

您的班级

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

这里是site中的一个小例子。

    @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));
    }