- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是能够在 Java GUI 中使用很棒的字体。为此,我搜索并找到了这个question .
我选择了第二个答案,用 InputStream 导入 fontawesome-webfont.ttf。我根据自己的需要定制了代码,因为我不需要一种方法来实现我的目的。
但是在测试它时,我收到错误:“读取字体数据时出现问题”:
Font font = Font.createFont(Font.TRUETYPE_FONT, is);
<小时/>
这是有问题的代码:
try (InputStream is = this.getClass().getResourceAsStream("C:/Users/Prak01/Documents/EclipseWorkspace/Zeiterfassung/fontawesome-webfont.ttf")) {
try {
Font font = Font.createFont(Font.TRUETYPE_FONT, is);
font = font.deriveFont(Font.PLAIN, 24f);
TextfieldFont = new JTextField("");
TextfieldFont.setFont(font);
} catch (FontFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
我相信我所做的一切都是按照规则进行的。数据路径正确。难道是因为……
this.getClass().getResourcesAsStream();
因为我将其更改为:
TestFontAwsome.class.getResourceAsStream();
但我相信它也应该与 this.getClass()
一起使用。
最佳答案
您错误地认为 getResourceAsStream 的参数应该是一个文件名。它不是一个文件名;它是一个相对 URL,根据类路径中的每个条目进行解析。一般来说,这意味着它应该是同一个 .jar 文件中的路径。
如果您想直接从文件加载字体,请不要使用 getResourceAsStream。只需将其作为文件打开即可:
try (InputStream is = new BufferedInputStream(
Files.newInputStream(Paths.get("C:/Users/Prak01/Documents/EclipseWorkspace/Zeiterfassung/fontawesome-webfont.ttf")))) {
注意:您不需要两个 try
block 。 try-with-resources 语句允许有一个 catch
block :
try (InputStream is = new BufferedInputStream(
Files.newInputStream(Paths.get("C:/Users/Prak01/Documents/EclipseWorkspace/Zeiterfassung/fontawesome-webfont.ttf")))) {
// ...
} catch (FontFormatException e1) {
// ...
}
关于java - 很棒的字体 : "pr0blem reading font data" in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848492/
我在 LeetCode 上做题,Climbing Stairs ,内容如下: 我想出了以下基于深度优先搜索的解决方案: class Solution: def climbStairs(self
我正在使用 inBitmap 在 android3+ 上加载位图。但我总是得到 java.lang.IllegalArgumentException: Problem decoding into ex
我创建了一个干净的 Android 应用程序 A 然后我右键单击它并选择了 Google->Generate App Engine 这导致了这个: 错误描述是: Description Resourc
我 fork 了 GitHub OpenVBX project ,创建了一个 Azure 网站(在 ClearDb 上使用 MySQL),并将其配置为从分支中提取。 (重现步骤类似于:http://w
我是一名优秀的程序员,十分优秀!