我正在尝试将我制作的自定义字体加载到JTable中。 这就是我的方式:
private void carregar_font(){
try {
URL fontName = getClass().getResource("fonts/open.ttf");
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(fontName.toString())));
} catch (IOException e) {
e.printStackTrace();
} catch(FontFormatException e) {
e.printStackTrace();
}
}
这给了我一个IOException。有什么建议吗?感谢
答案 0 :(得分:0)
getClass().getResource
返回一个URL,而不是文件名。将其直接传递给new File
会导致文件无效且不存在。
不保证资源URL指向文件。请改用getResourceAsStream和other Font.createFont method:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
try (InputStream fontStream = getClass().getResourceAsStream("fonts/open.ttf")) {
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, fontStream));
}