如何在JavaFX Application中嵌入自定义字体?我尝试制作fonts.mf文件,并按照说明链接到下面的类似问题。如果不需要,我不想使用CSS。我想专注于学习JavaFX的核心知识。
这就是我一直在搞的事情:
private static Label makeTitle() {
Label title = new Label("Bandit King");
Font font = new Font("OldStyle", 40);
title.setFont(font);
return title;
}
我的fonts.mf文件仅包含以下行:
OldStyle = /home/myName/Desktop/My_Java_Projects/Bandit_King/banditKing/OLDSH.TTF
这不是this question的重复项。 Eclipse说:“ CustomFontApp,无法解析为一种类型。”
答案 0 :(得分:1)
我尝试制作fonts.mf文件
您不需要它。
这不是此问题的重复项。 Eclipse说:“ CustomFontApp,无法解析为一种类型。”
CustomFontApp
只是您链接的答案中使用的类的名称-您的类名称明显不同,应该更改它。
此行:
Font font = new Font("OldStyle", 40);
仅在系统上安装OldStyle
字体时才会加载。您没有使用已安装的字体,而是使用嵌入的字体,因此无法使用。
您需要使用Font.loadFont(InputStream, double)或Font.loadFont(String, double)从磁盘加载您的自定义字体:
// use this to load font from your application's resource folder (`res/fonts/OLDSIH.TTF`)
Font font = Font.loadFont(getClass().getResourceAsStream("/fonts/OLDSIH.TTF"), 40);
// or this one to load font from the specified (absolute) path
// (not recommended, use the method above or, at least, change this into relative path):
Font font = Font.loadFont("file:///home/myName/Desktop/My_Java_Projects/Bandit_King/banditKing/OLDSH.TTF", 40);