Bestimmte FontAwesome-Glyphen werden nicht in Java Swing JToolBar-Schaltflächen dargestellt

9

Ich habe ein Problem, bestimmte Glyphen aus der FontAwesome-Sammlung in Schaltflächen in einer Swing JToolBar anzuzeigen. Hier ist ein Screenshot zur Veranschaulichung (beachten Sie, dass die obere Schaltfläche in der Symbolleiste auf der rechten Seite kein nettes Symbol ist, sondern stattdessen drei leere Rechtecke anzeigt):

Der Code, um dies zu reproduzieren (zumindest auf meinem Mac) ist:

%Vor%

Ich habe ein paar Dinge ausprobiert: (1) Mit verschiedenen Versionen der FontAwesome.ttf-Datei, keine Änderung; (2) Versuche verschiedene JDK-Versionen, keine Änderung; (3) Das gleiche Zeichen wird in einem normalen JButton angezeigt. Dies funktioniert, wie Sie im folgenden Screenshot sehen können (also ist das offensichtlich kein Problem mit der Font-Datei):

Ich habe auf einem nicht-Retina-Mac getestet und alles funktioniert, also frage ich mich, ob das etwas für das Retina-Display ist. Wenn jemand irgendwelche Vorschläge hat, würde ich mich freuen, von Ihnen zu hören, danke.

Der Code für das Beispiel nur JButton (das funktioniert) ist:

%Vor%     
David Gilbert 28.08.2014, 11:53
quelle

1 Antwort

4

Ich denke, das Problem ist die ComponentUi
Bedeutet in speziellen: ToolbarUi oder ButtonUi (-Implementation).

ToolbarUi (und ButtonUi) sind abstrakte Klassen, die in Ihrem ausgewählten LookAndFeel implementiert sind.
Die Implementierung kann für jedes LookAndFeel völlig unterschiedlich sein.
Einige Implementierungen ignorieren einige "Benutzer" -Einstellungen wie z. B. Schriftart oder Farbe .

JButtons können eine andere Ui-Implementierung als Buttons verwenden, die zu JToolBars hinzugefügt werden!
Und diese Implementierung ignoriert möglicherweise Ihre Schriftarteinstellungen.

Siehe zum Beispiel ButtonUi-Implementierung ( nur ein Teil von ) in MetalLookAndFeel

%Vor%

Hier können Sie das unterschiedliche Verhalten sehen, wenn MetalUtils.isToolbarButton

ist

Sie müssen Ihr LookAndFeel-Implementierungsverhalten überprüfen.
(Vielleicht gibt es auch eine andere Implementierung, abhängig von der Bildschirmauflösung)

    
Ben 31.08.2014, 00:32
quelle

Tags und Links