【发布时间】:2015-06-06 10:28:42
【问题描述】:
在一个名为 data 的文件夹中,我有一个名为 font.ttf 的字体文件。
我想读进去,像这样:
try {
Font f = Font.createFont(Font.TRUETYPE_FONT,
new File("data/font.ttf")).deriveFont(12.0);
} catch (IOException | FontFormatException e) {}
直到我从 system 中删除了相同的字体(它仍在数据文件夹中!)之前,它都运行良好。 现在,它只是显示 Java 的通用字体。
是否甚至可以从不在系统字体文件夹中的文件中读取字体?
【问题讨论】:
-
该代码将无法编译。请编辑您的问题以显示您的实际代码,包括处理 IOException 和 FontFormatException 的
catch块。 -
好的,添加了catch块。
-
真的发生了异常吗?我建议您将 println 替换为
throw new RuntimeException(e);。除非你真的希望你的应用程序在没有加载字体的情况下运行。 -
它没有抛出任何异常。这很奇怪,因为字体文件实际上就在那里。如果系统上实际安装了字体,那么“引用文件”的事情就会起作用。
-
使用GraphicsEnvironment解决(见stackoverflow.com/questions/13717481/setting-custom-font)