从Jar访问自定义字体

时间:2011-04-14 20:48:37

标签: java

我将在我的应用程序中使用自定义字体。为此我使用Font.createFont()方法。 我的代码如下。当我使用命令

运行我的主类时,它工作正常
  

java myAppl.class

字体文件与我的类文件位于同一目录中。但是当我将所有文件和字体文件捆绑在JAR中然后从JAR运行我的应用程序时,自定义字体不会加载。为什么呢?

InputStream is = this.getClass().getResourceAsStream("myfont.TTF");
uniFont=Font.createFont(Font.TRUETYPE_FONT,is);
Font f = uniFont.deriveFont(24f);

我该怎么办?

3 个答案:

答案 0 :(得分:4)

  1. 确保字体文件名称&扩展在代码中与文件系统完全相同。 Windows可能不区分大小写,但Java是。
  2. 检查InputStream返回的getResourceAsStream() null。如果是null,则表示资源未找到。
  3. 将字体放在Jar的根目录中,并在名称前添加“/”作为前缀。

答案 1 :(得分:1)

正如安德鲁的回应,我已经测试了上面的代码并且正常工作:

InputStream is = this.getClass().getResourceAsStream("/myfont.TTF");
uniFont=Font.createFont(Font.TRUETYPE_FONT,is);

在文件名前缺少“/”。注意:Netbeans的jar包

答案 2 :(得分:0)

尝试将字体复制到jre / lib / font文件夹

或使用包限定名称(“com.mypackagename.myfont.TTF”)