如何在JavaFX中设置自定义字体?



我想设置自定义字体"Cerebri Sans Regular"到我的JavaFX应用程序。我正在使用Java SE 11和JavaFX 11。

我的尝试:

public class SampleController implements Initializable {
@FXML
private Label customFont;

@Override
public void initialize(URL arg0, ResourceBundle arg1) {
Font font = Font.loadFont("cerebrisans-regular.ttf", 20);

customFont.setFont(font);
}

}
误差

java.lang.NullPointerException: Cannot invoke "javafx.scene.text.Font.getNativeFont()" because "<parameter1>" is null
at javafx.graphics/javafx.scene.text.Font$1.getNativeFont(Font.java:68)

再次尝试从css

@font-face {
src: url("cerebrisans-regular.ttf");
}
.root {
-fx-background-color: gray;
-fx-font-family: "Cerebri Sans"; /* this name is from font file */
}
.customFont {
-fx-text-fill: red;
-fx-font-size: 16px;
-fx-font-family: "Cerebri Sans";
}

误差

Mar 03, 2021 2:31:56 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load @font-face font [file:/C:/Java%20Training/JavaFX-Test/Custom-Font-Demo/bin/application/cerebrisans-regular.ttf]

问题是在我的工作环境名称中,有一个空格。删除,重命名,现在它正在与问题中显示的CSS代码一起工作。

最新更新