2013-04-22 89 views
0

導入字體我已經嘗試使用下面的方法來創建自定義的字體,但它拋出一個異常:從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

回答

0

您錯過了一個斜槓。沒有它,它正在相對於打電話的班級進行搜索。嘗試:

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

或者,嘗試:

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