Welche Schriftart in Swing sieht in allen Betriebssystemen gleich aus?

8

Ich verwende Netbeans 7.0 mit JDK6 unter Windows 7, um die Benutzeroberfläche meiner Java-Anwendung zu entwerfen. Ich wende System Look and Feel an. Aber es sieht so aus, wie ich es in Windows will, unterscheidet sich aber in MacOS und noch schlimmer, es sieht in verschiedenen Window-Managern unter Linux (LXDE, GNOME, KDE, XFCE) anders aus.

Mit anderen meine ich die Schriftarten und ihre Größe. Wenn ein Etikett in Windows "v 1.23" aussieht, sieht es in anderen Betriebssystemen wie "v ..." aus, da die Schriftarten in diesem Betriebssystem größer werden und die JLabel nicht genügend Platz zum Anzeigen haben. Dies geschieht an mehreren Stellen.

Ich möchte die Etikettenbreite nicht erhöhen. Ich möchte, dass das Etikett in der angegebenen Breite in allen Betriebssystemen gleich aussieht. Standardmäßig verwendet Netbeans die Schriftart Tahoma 11pt auf meinem PC. Ich denke, es ist nicht in allen Betriebssystemen verfügbar, daher verwenden die anderen Betriebssysteme unterschiedliche Schriftarten.

Ist Arial eine allgemeine Schriftart?

Soll ich die Schriftart jedes Elements manuell in Arial ändern? Oder irgendwelche anderen Optionen?

    
Vigneshwaran 25.08.2011, 09:27
quelle

4 Antworten

5

Wenn es um Fenstermanager geht, gibt es viel mehr als nur die Schriftgröße, zum Beispiel wird die Breite zwischen zwei Steuerelementen in gnome & amp; KDE. Wenn es darum geht, auf allen Plattformen die gleiche Schriftgröße zu verwenden, können Sie Sans Serif font verwenden, das ist in allen Betriebssystemen verfügbar, mit denen ich gearbeitet habe.

es wäre auch besser (wenn Sie Serif nicht in einem OS finden, wo Sie Ihre App ausführen möchten), können Sie eine Schriftart herunterladen (kostenlos von Freie GNU-Schriftarten ).

wenn es darum geht, die Schriftgrößen & amp; die Schriftarten, warum versuchst du nicht ein Theme & amp; Setze die Schrift dort ... Sie können die Methode UIManager.setLookAndFeel() verwenden, um Themen zu ändern. Hier ist ein Link auf Look & amp; Fühle

    
Anantha Sharma 25.08.2011, 09:37
quelle
8

Verwenden Sie stattdessen einen Layout-Manager und ein logische Schriftfamilie . Diese Beispiel mit dem Font darunter fügt 24-stelligen, kursiven Serif-Text in die Mitte eines (Standard) BorderLayout ein, um auf verschiedenen Plattformen ein ansprechendes Ergebnis zu erzielen.

%Vor%

Mac OS X:

Windows 7:

Ubuntu Linux:

    
trashgod 25.08.2011 10:46
quelle
0

Lucida Sans Regular ist immer mit Java gebündelt, aber ich glaube nicht, dass es das Problem lösen wird, dass einige Texte / Labels nicht mehr formatiert sind. Das hängt auch von der Bildschirmauflösung des Benutzers ab.

    
PeterMmm 25.08.2011 09:36
quelle
0

Eine alte Frage, aber ich habe sie gefunden, weil ich nach einer Lösung gesucht habe. Und meine Lösung ist: Verwenden Sie DejaVu-Schriftarten. Die Java-Dialogschrift sieht in Linux und Windows anders aus, aber DejaVuSans 12 ähnelt der Dialogschrift in Linux und sieht in Windows (zumindest in Windows 8.1) gleich aus. Mein Code:

%Vor%

Wenn DejaVuSans.ttf nicht in die JAR-Datei eingebettet ist, können Sie sie natürlich zur Laufzeit importieren. Siehe Wie importierst du eine Schriftart? .

    
Sergio 12.02.2016 10:17
quelle