如何在JavaFX中嵌入字体?



如何在 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);

相关内容

  • 没有找到相关文章

最新更新