如何在 JavaFX 应用程序中嵌入自定义字体?我尝试制作一个 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
这不是这个问题的重复。Eclipse说,"CustomFontApp,无法解析为类型"。
我试过制作一个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);