英文:
Add custom font file on java for executable JAR file
问题
我正在尝试将自定义字体添加到我的jswing应用程序中,但我找不到如何正确上传.ttf文件,以便在我创建可执行的JAR文件后可以使用它。
问题出在这里,新文件(getClass().getResourceAsStream("/" + "cs_regular.ttf"))
谢谢!
尝试以下代码:
try {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(getClass().getResource("/cs_regular.ttf").toURI())));
} catch (FontFormatException | IOException | URISyntaxException e) {
pr("Error_107");
}
英文:
I am trying to add custom font to my jswing application, and i can't find how to properly upload the .ttf file so that i can use it once i create a executable jar file.
problem here, new File(getClass().getResourceAsStream("/"+"cs_regular.ttf"))
thank you!
try {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(getClass().getResourceAsStream("/"+"cs_regular.ttf"))));
} catch (FontFormatException|IOException e) {
pr("Error_107");
}
答案1
得分: 1
这并不是很容易从流创建 java.io.File
,你可以直接从流创建字体。
看一下这个答案。
https://stackoverflow.com/a/40862139/10999348
英文:
It is not quite easy to create java.io.File
from stream, you can create Font from stream directly.
look at this answer.
https://stackoverflow.com/a/40862139/10999348
答案2
得分: 1
这是我的现成代码
InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream("cs_regular.ttf");
try {
csfont = Font.createFont(Font.TRUETYPE_FONT, stream).deriveFont(48f);
} catch (FontFormatException | IOException e) {
// 处理异常
}
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(csfont);
英文:
This is my working code now
InputStream stream =ClassLoader.getSystemClassLoader().getResourceAsStream("cs_regular.ttf");
try {
csfont = Font.createFont(Font.TRUETYPE_FONT, stream).deriveFont(48f);
} catch (FontFormatException|IOException e) {
//handle exeption
}
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(csfont);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论