我正在尝试创建一个可以加载FontAwesome
图标但却无法读取fontawesome-webfont.ttf
文件的类。
用于创建图标的类:
import javafx.scene.control.Label;
import javafx.scene.text.Font;
public class AppFont {
static {
Font.loadFont(AppFont.class.getResource("/res/fontawesome-webfont.ttf").toExternalForm(), 10);
}
public static Label createIcon(Icon icon, int iconSize) {
Label label = new Label(icon.toString());
label.setStyle("-fx-font-family: FontAwesome; -fx-font-size: " + iconSize + ";");
return label;
}
}
图标枚举:
public enum Icon {
TEST('\uf099');
private Character c;
private Icon(Character c) {
this.c = c;
}
public Character getCharacter() {
return c;
}
@Override
public String toString() {
return c.toString();
}
}
用法:
Label l = AppFont.createIcon(Icon.TEST, 40);
this.getChildren().add(l);
我得到了什么
当然.ttf
文件位于正确的位置。它不会抛出任何错误。
感谢您的帮助!
答案 0 :(得分:0)
确保将protected void ensureObj(Object object) {
if (!this.field.getDeclaringClass().isAssignableFrom(object.getClass())) {
this.throwSetIllegalArgumentException(object);
}
}
设置为所加载字体的正确名称。一旦使用正确的代码,我就会使用-fx-font-family:
或Font Awesome 5 Pro Regular'
。