GUI aussehen unter Windows und Linux (und Mac)

Scruffy

Mitglied
Ich habe ein mittleres Problem mit meiner GUI: Ich habe sie in Netbeans unter Windows erstellt, sieht auch ganz toll aus. Starte ich das Programm aber unter Linux (oder Mac) sieht es schon nicht so toll aus, obwohl die LaF die gleiche ist (com.sun.java.swing.plaf.windows.WindowsLookAndFeel), und wenn ich beim Programmstart
Code:
UIManager.getSystemLookAndFeelClassName()
setze wird das Aussehen noch kurioser. Ist also die Plattforumunabhänigkeit nur für die Logik? Oder kann man das Aussehen auch vereinheitlichen?

Konkret werden in Panels Labels und JSpinner in einem GridBagLayout untereinander erstellt. Die Spinner bekommen eine feste Breite von 70. Alles paßt unter Windows sehr gut, nur eben bei den anderen Systemen nicht.
 
Dann hätte ich ganz gerne mal ein paar Screenshots von allen Sytemen, damit man sich das mal ansehen kann.
Ein absolut einheitliches Aussehen erhältst du nur mit dem MetalLookAndFeel bzw.
Code:
UIManager.getCrossPlatformLookAndFeelClassName()
Ansonsten hast du schon die Unterschiede allein durch die Darstellung der Oberflächen der Betriebssysteme.
 
Screenshots darf ich leider nicht zeigen.

MetalLookAndFeel bzw. UIManager.getCrossPlatformLookAndFeelClassName() sieht aus wie, entschuldige bitte den Ausdruck, dahingekotzt. Ich hab noch das Nimbus LaF ausprobiert, das scheint auch bei allen (hier genannten) Plattformen gleich auszusehen, aber das einzig brauchbare Aussehen ist nun mal das Windows LaF. Es gibt also keine Möglichkeit das gleich aussehen zu lassen?

Wie kann ich dann das Netbeans unter Windows dazu überreden die GUI im Designer unter MetalLookAndFeel zu presentieren?
 
Wenn's nicht dabei wäre würde es doch gar nicht starten unter Linux und Mac... oder sehe ich das falsch.

Danke für den Link, werd' ihn ausprobieren. Aber wenn ich das richtig verstanden habe, stellt es den Look vom kompletten Netbeans um und nicht vom GUI Builder.
 
wenns nicht dabei ist, setzt java das LaF das auf dem aktuellen System als Standard definiert ist. Es soll auch Exception geworfen werden. Ist dein Catch-block leer?
 
Ich hab noch das Nimbus LaF ausprobiert, das scheint auch bei allen (hier genannten) Plattformen gleich auszusehen, aber das einzig brauchbare Aussehen ist nun mal das Windows LaF.
Hmm, das Gtk und das Mac Look and Feel sind ziemlich nahe am Original. Wenn der das nicht gefällt ist das Geschmacksache, die User dieses Systems haben sich jedenfalls bewusst dafür entschieden.
Motif und Metal sind allerdings wirklich unzumutbar.
 
Anmerkung am Rande: Feste Breiten von Komponenten sind in mit Vorsicht zu genießen. Verschiedene Desktopsysteme unterscheiden sich nicht nur durch unterschiedliche Hersteller. Oft sind zum Beispiel die Schriftarten und -größen anders und die GUI sieht auf einem Windows super aus und auf einem anderen passt alles hinten und vorne nicht.

Ebenius
 
Anmerkung am Rande: Feste Breiten von Komponenten sind in mit Vorsicht zu genießen. Verschiedene Desktopsysteme unterscheiden sich nicht nur durch unterschiedliche Hersteller. Oft sind zum Beispiel die Schriftarten und -größen anders und die GUI sieht auf einem Windows super aus und auf einem anderen passt alles hinten und vorne nicht.

Ebenius


GENAU das Problem habe ich jetzt auch! Ich habe mein Programm jetzt endlich fertig und hatte es auf einem FullHD-Bildschirm programmiert und dann wollte ich natürlich auf einem anderen PC (normaler VGA Bildschirm) anwenden nur leider sehe ich jetzt nicht einmal die Hälfte davon... Jetzt kann ich das ganze GUI nochmal machen! Hab übrigens das null-Layout verwendet, glaube das war ein Fehler xD

Da Ronny
 
Zuletzt bearbeitet:
Weitere Anmerkung:

Ich als MAC User empfinde das WindowsL&F nicht als "einzig Brachbar". Ich möchte ja gar kein Windows L&F haben. Denk da mal drüber nach.

Gruß

Claus
 
Ich verstehe das Problem nicht so recht... ich verwende zu beginn des GUI-Codes generell
Java:
try
{
    javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
}
catch (Exception ignored) {} // Fallback auf das Metal LAF

Und wenn man damit - wie von Ebenius gesagt - keine fixen Werte vergibt sondern (sei es im GUI-Builder oder per Hand) die Layouts sachgerecht einstellt (also keine Hacks nutzt etc) ist die fertige GUI nurnoch an Nuancen von einer nativen zu unterscheiden.

EDIT:

Achja,

Weitere Anmerkung:

Ich als MAC User empfinde das WindowsL&F nicht als "einzig Brachbar". Ich möchte ja gar kein Windows L&F haben. Denk da mal drüber nach.

Gruß

Claus

mir geht das als Linux nutzer ebenfalls so. Wenn ich auf Ubuntu oder Mint arbeite möchte ich nicht an Windoof erinnert werden und mich auch nicht beim Wechseln des Fensters an eine andere GUI gewöhnen müssen.
 
Zuletzt bearbeitet:
Mir geht es ja eigentlich nicht um das andere aussehen. Aber bei mir ist es zum Beispiel so, wenn ich mein Programm auf Linux tu, dann sind meine Choice-Felder doppelt so hoch wie in Windows.

Aber ich bin da noch Anfänger und irgendwann kriegt man das schon hin 😉

Da Ronny
 

Zurück
Oben