我正在尝试使用此方法在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]
这是我的项目结构“截图”
注意我正在使用intellij Idea作为我的IDE.Thanks提前。
答案 0 :(得分:5)
这是JavaFX(8)中的一个错误。如果在字体文件的路径名中有空格,则不会加载,并抛出异常,就像发生在你身上一样。
这意味着我们不应该从CSS文件加载字体,除非我们确定文件路径不会包含任何空格。
有一种更好,更安全的方式来加载字体(〜main()
内的第一行):
Font.loadFont(getClass().getResourceAsStream("/font.ttf"), 16);
答案 1 :(得分:0)
对于在搜索时得到此答案的其他人:
如果您不小心遗漏了样式中字体名称的引号,也会发生相同的错误:
-fx-font-family: Monserrat;
是错误的,它必须是
-fx-font-family: 'Montserrat';