В нашем приложении Java Swing мы загружаем собственный шрифт и добавляем его в JLabel
:
try {
this.font = Font.createFont(Font.TRUETYPE_FONT, new File("resources/fonts/ourcoolfont.ttf")).deriveFont(16f);
} catch (Exception e) {
this.font = new Font("Arial", Font.PLAIN, 16);
}
this.label.setFont(this.font);
Легко и отлично работает на 3 разных системах. Пока кто-то еще не попытался запустить его. Шрифт был загружен (как мы также используем на некоторых других элементах Swing), но не использовался в JLabel
.
После некоторых поисков я обнаружил, что вы не можете использовать как HTML, так и загруженный шрифт. По некоторым причинам это работает в моей системе (я предполагаю, что это как-то связано с версией Java), но не в некоторых других. Поскольку мы хотим, чтобы проект работал в устаревших версиях Java, просто запросить обновление не вариант.
Один из вариантов - установить шрифт на компьютер, что нам не нравится. Лучшее решение, которое я нашел, это:
Как создать текстовый компонент Java / Swing, который стилизован и имеет собственный шрифт?
Однако этот вопрос о JTextPane
. У JLabel
, похоже, нет метода getStyledDocument()
, который я мог бы использовать для этого.
Есть ли способ заставить наш шрифт работать с JLabel
?