В нашем приложении 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);
Легко и отлично работал на трех разных системах. Пока кто-то другой не попытался его запустить. Шрифт был загружен (как мы используем и в некоторых других элементах Swing), но не использовался в JLabel
.
После некоторых поисков я выяснил, что нельзя использовать одновременно HTML и загруженный шрифт. По некоторым причинам это работает на моей системе (я предполагаю, что это связано с версией Java), но не работает на некоторых других. Поскольку мы хотим, чтобы проект работал на устаревших версиях Java, просто попросить его обновить - не вариант.
Один из вариантов - установить шрифт на компьютер, что нам не нравится делать. Лучшим решением, которое я нашел, является следующее: Как я могу создать текстовый компонент Java/Swing, который будет иметь стиль и пользовательский шрифт?
Однако этот вопрос относится к JTextPane
. У JLabel
, похоже, нет метода getStyledDocument()
, который я мог бы использовать для этого.
Есть ли способ позволить нашему шрифту работать с JLabel
?