我正在使用java swing创建一个应用程序,但我也试图加载一些字体而卡住了!这里是问题:当我尝试使用以下代码加载它们时,我有一个带有一些自定义字体的资源文件夹:
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文件夹中。现在看起来像这样:解决方案项目文件和代码
您可能需要阅读Java中的“访问资源”。
您需要前导/表示类路径的根以及资源包名称。
Nunito = CustomFont("/resources/Fonts/Nunito/Nunito-BlackItalic.ttf");
话虽这么说,我不能告诉您您的类在哪里,奇怪的是您的资源文件夹/程序包与Java分开,通常它们会位于同一文件夹中,只是位于不同的程序包中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句