Jar файл выдаёт исключение
Класс GameField
private Font myFont0;
{
try {
myFont0 = (Font) StaticMethods.loadFile("ARIALN.ttf");
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (FontFormatException e) {
e.printStackTrace();
}
}
метод loadFile() для загрузки класс StaticMethods
public static Font loadFile(String filePath) throws IOException, ClassNotFoundException, FontFormatException {
try (final ObjectInputStream myObjectFile = new ObjectInputStream(new BufferedInputStream(GameField.class
.getClassLoader().getResourceAsStream(filePath)))) {
return Font.createFont(Font.TRUETYPE_FONT, myObjectFile);
} catch (FontFormatException e) {
e.printStackTrace();
}
return null;
}
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
ваш шрифт должен лежать в папке ресурсов. попробуйте использовать такой метод:
import java.awt.Font;
import java.awt.FontFormatException;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
public class GameField {
public static Font loadFile(String filePath) throws IOException, ClassNotFoundException, FontFormatException {
try (final InputStream is = new BufferedInputStream(GameField.class.getClassLoader().getResourceAsStream(filePath))) {
return Font.createFont(Font.TRUETYPE_FONT, is);
}
}
public static void main(String[] args) throws Exception {
Font font = loadFile("assets/fonts/ARIALN.ttf");
Font myFont1 = font.deriveFont(30f);
System.out.println(myFont1);
}
}