Symbole zu JButton hinzufügen, indem Sie eine benutzerdefinierte Schriftart von AwesomeFont und Unicode-Zeichen in Java Swing verwenden?
-
10-12-2019 - |
Frage
Ich habe einen JButton und möchte ihm ein Symbol hinzufügen.Ich möchte die schriftartbasierten Symbole von FontAwesome verwenden, das eine TrueType-Schriftartdatei bereitstellt.Das Symbol, das ich hinzufügen möchte, ist das Wiedergabeschaltflächensymbol.Das Play-Button-Symbol in der CSS-Datei für FontAwesome ist \f04b
was meiner Meinung nach übersetzt bedeutet \uf04b
in Java.
So lade ich die Schriftart in den Konstruktor der Basisklasse „by IconButton“.
public class IconButton extends JButton {
public IconButton() {
try {
InputStream in = this.getClass().getResourceAsStream("/fontawesome-webfont.ttf");
Font ttfBase = Font.createFont(Font.TRUETYPE_FONT, in);
Font ttfReal = ttfBase.deriveFont(Font.BOLD, 24);
setFont(ttfReal);
} catch (FontFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
In der implementierenden Klasse StartButton stelle ich den Text so ein.
public class StartButton extends IconButton {
public StartButton() {
setText(String.valueOf('\u0f4b'));
setForeground(Color.BLACK);
}
}
Das ist es, was ich bekomme.Nichts.
Jede Hilfe wird sehr geschätzt.
BEARBEITEN:Siehe Antwort unten.
Lösung
Ich glaube, ich habe das tatsächlich gelöst.Der richtige Charakter ist \uf04b
nicht \u0f4b
.Hoppla!:) :)
Das funktioniert jetzt bei mir.
Andere Tipps
Probieren Sie jIconFont (Swing oder JavaFX) unter http://jiconfont.github.io/
Beispiel:
Icon icon = IconFontSwing.buildIcon(FontAwesome.FLOPPY_O, 15);
JButton button = new JButton(icon);