Я реализую графический интерфейс для шахматной программы, которую я пишу для класса.Чтобы это выглядело изысканно, я хочу использовать шрифт Chess Piece, полученный из интернета.
Файл chess.ttf находится по пути Chess / resources / chess.ttf.Я использую следующий код в соответствии с инструкциями Oracle (https://docs.oracle.com/javase/tutorial/2d/text/fonts.html):
try {
File file = new File("resources/chess.ttf");
//Returned font is of pt size 1
Font font = Font.createFont(Font.TRUETYPE_FONT, file);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, file));
//Derive and return a 12 pt version:
//Need to use float otherwise
//it would be interpreted as style
return font.deriveFont(12f);
}
catch (IOException|FontFormatException e) {
System.out.println("-Font Error-");
return null;
}
. Однако, это вызывает исключение IOException. Я запустил getAbsolutePath () для файла и получил / Users / [me] / eclipse-workspace / Chess/resources/chess.ttf, поэтому я предполагаю, что файл загружается правильно. Кто-нибудь знает, что не так с моим кодом?
edit: проблема решена? Я пробовал InputStreams, как предлагалось, но это не сработалоТем не менее, после возврата моего кода компьютер, наконец, перестал генерировать IOExceptions. Разве код не лучший?