我正在使用JavaFX版本8.0.40-b27并尝试通过CSS嵌入自定义/外部字体。我也尝试过程序化方法,所有方法都失败了。 “font”的System.out.print返回null,我怀疑它是原因。
爪哇:
Font font = Font.loadFont( Main.class.getClassLoader().getResourceAsStream( "application/stratum.ttf"), 10);
System.out.println(font); // Prints "null"
nowPlayingTitle.setFont(font);
CSS:
@font-face {
font-family: stratum;
src: url('stratum.ttf');
}
.text{
-fx-font-family: "stratum", "Segoe UI Light";
-fx-font-weight: 100;
-fx-text-fill: white;
}
目录: http://i.stack.imgur.com/c92ii.png
修改 System.out.println(font); 现在打印字体[name = StratumNo1-Thin,family = StratumNo1,style = Thin,size = 10.0] ,所以文件是正确访问。但是,字体仍未在屏幕上呈现:http://i.stack.imgur.com/bueUk.png
答案 0 :(得分:1)
对于Java代码中的URL,请尝试
// relative to classpath, with leading /
Font font = Font.loadFont( Main.class.getClassLoader().getResourceAsStream( "/application/stratum.ttf"), 10);
或
// relative to class:
Font font = Font.loadFont( Main.class.getClassLoader().getResourceAsStream( "stratum.ttf"), 10);
CSS看起来对我来说......你确定你的ttf文件与编译后的代码一起被部署为css等吗?