2013-04-22 2 views
0

Я попытался создать собственный шрифт, используя следующий метод, однако он вызывает исключение:Импорт шрифтов из JAR-файла

поток закрыт

и ничего не происходит! Как импортировать файл ttf из моего JAR и использовать его в 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

Каков ваш вопрос? –

+0

Извините, отредактировал его –

+0

Возможно, 'is.close()' не должно быть сделано. Я думаю, что второй вызов 'gameFont' - проблема. –

ответ

0

Вам не хватает ведущей косой черты. Без него он ищет по отношению к классу, вызывающему вызов. Попробуйте:

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

В качестве альтернативы, попробуйте:

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

Смежные вопросы