【发布时间】:2021-03-24 11:14:17
【问题描述】:
我正在尝试使用此方法注册一个 .ttf 字体:
private void addFont(String name) {
try {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
File file = new File("D:/Client/assets/fonts/"+ name);
Font font = Font.createFont(Font.TRUETYPE_FONT, file);
ge.registerFont(font);
} catch (FontFormatException | IOException e) {
e.printStackTrace();
}
}
问题是字体没有被创建,我得到的是:
java.awt.FontFormatException: java.nio.BufferUnderflowException
完全相同的代码在过去的项目中工作,用断点调试我发现ge 是一个“Win32GraphicsEnvironment”,而在当前项目中它是一个 HeadlessGraphicsEnvironment(这可能是问题吗?)。
更新:对于旧/新项目,我的意思是我正在修改的两个单独的 Minecraft 版本(1.12.2 和 1.16.4),我在 win 10 机器上运行,在 Intellij Idea 上调试并使用 JDK 1.8两个项目。
【问题讨论】:
-
您应更新有关环境的更多详细信息以避免被否决。什么是旧项目与新项目?之前的运行时是什么?
-
@cilap 我稍微编辑了问题并添加了一些环境信息,如果仍然不清楚,请随时告诉我,我不知道要添加什么。
-
仍然不清楚什么是旧/新。旧/新使用的java版本是什么?
-
@cilap 好的,重新编辑。