从JAR文件

问题描述:

导入字体我已经尝试使用下面的方法来创建自定义的字体,但它抛出一个异常:从JAR文件

流关闭

并没有任何反应!如何从我的JAR中导入ttf文件并在Java 2D中使用它!我设法让它与外部文件一起工作,但它不适用于InputStream!

public Font gameFont(String filename, float fontSize) { 
    Font myfont = null; 
    Font myfontReal = null; 
    try { 
     InputStream is = new BufferedInputStream(this.getClass().getResourceAsStream("com/or/dungeon/" + filename)); 

     myfont = Font.createFont(Font.TRUETYPE_FONT, is); 
     myfontReal = myfont.deriveFont(fontSize); 
     is.close(); 
    } catch (FontFormatException | IOException e) { 
     System.out.println(e.getMessage()); 
    } 
    return myfontReal; 
} 
+0

什么是你的问题? – 2013-04-22 13:54:52

+0

对不起,编辑它 – 2013-04-22 13:56:25

+0

也许不应该做'is.close()'。我认为第二次调用'gameFont'是个问题。 – 2013-04-22 13:57:02

您错过了一个斜杠。没有它,它正在相对于打电话的班级进行搜索。尝试:

this.getClass().getResourceAsStream("/com/or/dungeon/" + filename));

或者,尝试:

this.getClass().getClassLoader().getResourceAsStream("com/or/dungeon/" + filename));