我正在尝试创建一个自定义字体,以便在我的程序中使用,并认为我已正确配置代码。但是,当我尝试运行它时,我收到BufferUnderflowException。
我怀疑它可能是因为java没有以与创建时完全相同的方式读取.ttf,但这就是我的理解。如果有人有一些见解,我将不胜感激。
编辑:
我意识到查看错误可能会有所帮助:
java.awt.FontFormatException: java.nio.BufferUnderflowException
at sun.font.TrueTypeFont.init(Unknown Source)
at sun.font.TrueTypeFont.<init>(Unknown Source)
at sun.font.SunFontManager.createFont2D(Unknown Source)
at java.awt.Font.<init>(Unknown Source)
at java.awt.Font.createFont0(Unknown Source)
at java.awt.Font.createFont(Unknown Source)
try {
final InputStream stream =
new BufferedInputStream(new FileInputStream("fonts\\b.ttf"));
myFont = Font.createFont(Font.TRUETYPE_FONT, stream);
myFont.deriveFont(Font.PLAIN, 20f);
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, stream));
} catch (final IOException e) {
e.printStackTrace();
} catch (final FontFormatException e) {
e.printStackTrace();
}