我正在使用JavaSwing创建一个应用程序,但是我也在尝试加载一些字体!问题是:我有一个带有自定义字体的资源文件夹,当我尝试使用以下代码加载它们时:
public static Font CustomFont(String path) {
Font customFont = loadFont(path, 24f);
System.out.println(customFont == null);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(customFont);
return customFont;
}
public static Font loadFont(String path, float size){
try {
Font myFont = Font.createFont(Font.TRUETYPE_FONT, Launcher.class.getResourceAsStream(path));
return myFont.deriveFont(Font.PLAIN, size);
} catch (FontFormatException | IOException e) {
e.printStackTrace();
System.exit(1);
}
return null;
}
uifonts.java文件
public static Font Nunito;
public static void init() {
Nunito = CustomFont("Fonts/Nunito/Nunito-BlackItalic.ttf");
}
这是我的资源文件夹:我的项目文件和文件夹
它总是根据路径显示错误。
示例:无法读取字体文件数据。
解决方案
我需要补充一下 /
在 Font
这样地: Nunito = CustomFont("/Fonts/Nunito/Nunito-BlackItalic.ttf");
我的资源文件夹也不在java文件夹中。现在看起来是这样的:解决方案项目文件和代码
1条答案
按热度按时间7kjnsjlb1#
您可能想了解如何访问java中的资源。
您需要前导/表示类路径的根以及资源包名称。
尽管如此,我还是不知道你的类在哪里,但奇怪的是你的资源文件夹/包与java是分开的,通常它们会在同一个文件夹中,只是在不同的包中。