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?
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
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.
Mac OS X:
Windows 7:
Ubuntu Linux:
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? .
Tags und Links java user-interface swing netbeans