javafx @ font-face css错误“loadStyleSheetUnprivileged”

时间:2015-11-28 16:57:24

标签: java javafx java-8 javafx-2 javafx-8

我正在尝试使用此方法在JavaFx css中加载自定义字体

@font-face {
    font-family: 'Roboto';
    src: url('fonts/Roboto-Medium.ttf');
}

我已经用正确的路径完成了所有事情,但我收到了这个错误

Nov 28, 2015 4:49:18 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load @font-face font [file:/C:/Users/RootUser/Desktop/Java8%20projects/RemoteViewer/out/production/JavaFxApplication/application/fonts/Roboto-Medium.ttf]

这是我的项目结构“截图”

enter image description here

注意我正在使用intellij Idea作为我的IDE.Thanks提前。

2 个答案:

答案 0 :(得分:5)

这是JavaFX(8)中的一个错误。如果在字体文件的路径名中有空格,则不会加载,并抛出异常,就像发生在你身上一样。

这意味着我们不应该从CSS文件加载字体,除非我们确定文件路径不会包含任何空格。

有一种更好,更安全的方式来加载字体(〜main()内的第一行):

Font.loadFont(getClass().getResourceAsStream("/font.ttf"), 16);

答案 1 :(得分:0)

对于在搜索时得到此答案的其他人:

如果您不小心遗漏了样式中字体名称的引号,也会发生相同的错误:

-fx-font-family: Monserrat;

是错误的,它必须是

-fx-font-family: 'Montserrat';