В нашето приложение 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
?