如何使用CSS在JavaFX Scene Builder中设置自定义字体

How to set custom fonts in JavaFX Scene Builder using CSS

我正在JavaFX Scene Builder中制作GUI,并且希望所有文本(标签,文本字段,组合框)使用相同的字体。 问题在于这是一种自定义字体,可能不会在每个客户端的计算机上都使用。

我尝试过CSS:

1
2
3
4
5
6
7
8
9
@font-face {
   font-family: DIN;
   src: url(DIN.tff);
}

.text {
   -fx-font-family: DIN;
   -fx-font-style: bold;
}

将上面的代码保存到文件Font.css,并尝试通过Scene Builder的JavaFX CSS字段将其应用于每个GUI元素,但是它不起作用。

我在CSS中犯了一个错误吗? 还是有更好的方法来解决这个问题? 如果不需要,我宁愿不必加载字体并为Java代码本身中的每个元素设置字体。


确保使用Font.loadFont在应用程序启动时实际加载字体。 然后,您应该能够使用CSS中的字体。 请小心使用字体的名称,而不是字体文件的名称。 这是一个常见的错误。

在加载和使用自定义字体之前,我已经使用以下内容:

1
Font.loadFont(getClass().getResourceAsStream("/resources/fonts/marck.ttf"), 14);

和:

1
-fx-font-family:"Marck Script";

仅供参考:如果名称中包含空格,则仅需使用引号。