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

How to set custom fonts in JavaFX Scene Builder using CSS

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

我试过了CSS:

@font-face {
   font-family: DIN;
   src: url(DIN.tff);
}

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

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

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

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

我之前使用过以下方法来加载和使用自定义字体:

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

和:

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

仅供参考:仅当名称包含 space.

时才需要引号