javafx @font-face css 错误 "loadStyleSheetUnprivileged"

javafx @font-face css error "loadStyleSheetUnprivileged"

我正在尝试使用此方法在 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]

这是我的项目结构"screenshot"

注意我提前使用了intellij Idea作为我的IDE.Thanks

这是 JavaFX (8) 中的错误。如果字体文件的路径名中有 space,它将不会加载,并抛出异常,就像您遇到的那样。

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

有更好、更安全的方式来加载字体(~main() 中的第一行):

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

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

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

-fx-font-family: Monserrat;

错了,应该是

-fx-font-family: 'Montserrat';