JavaFX嵌入自定义字体不起作用

时间:2015-05-14 18:52:04

标签: java fonts javafx external

我正在使用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

1 个答案:

答案 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等吗?