LookAndFeel in Linux setzen

Status
Nicht offen für weitere Antworten.

FuriKuri

Mitglied
Guten Abend,

ich hoffe, dass ich hier richtig bin. Habe schon viel gesucht und viel porbiert aber bis jetzt keine Lösung gefunden.
Es dreht sich um folgendes. Meine Java Applikationen nutzen alle nicht meinen GTK Theme. Das es geht weiß ich, da wenn ich in meine eigenenen Programme den LAF "brutal" selber auf GTKLookAndFeel setze es auch geht. Aber sobald das SystemLAF benutzt werden soll, wird das (für meinen Geschmack hässliche) MetalLAF benutzt.

Ich habe einmal in die swing.properties folgendes reingeschrieben:
swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Diese liegt nun in /etc/java-6-sun/ und /usr/lib/jvm/java-6-sun/lib
Auch wenn ich meine Applikationen hiermit starte "java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp" tut sich nicht.

Was ein ganz komische Effekt ist, ist das hier:
Wenn ich dieses Demoprogramm starte SwingSet2 schaft er es meine GTK Theme zu nutzen. Starte ich dann eine andere Java Applikation wie zum Beispiel "freemind" nutzt dieser nicht nur den Metal-Look, sondern auch das Demo-Programm (ohne neuzustarten) nutzt plötzlich diesen.

Ich benutze Openbox unter Ubuntu 9.04.

Ich hoffe jemand hat noch eine Idee und kann mir helfen.

Danke schonmal für eure Hilfe
 

L-ectron-X

Gesperrter Benutzer
Wenn das Metal-LAF nach einem Befehl zum Setzen eines beliebigen LAFs gesetzt wird, wird es nicht unstersützt, oder es wurde ein falscher Name angegeben.
Außerdem wird eine Exception geworfen. Guck mal in deine Konsole, was dort ausgegeben wird, das könnte bei der Fehlersuche helfen.
Ganz wichtig ist hier, dass du auch die Exceptions behandelst und mindestens die printStackTrace()-Methode zur Ausgabe aufrufst.
 

sparrow

Top Contributor
Ich glaube es geht ihm nicht um sein eigenes Programm sonder darum ein neues "Standard LAF" zu setzen.
Wahrscheinlich damit sich alle Java-Anwendungen die er verwendet optisch in das Gesamtkonzept (in diesem Fall GTK-basierend) einfügt.
 

Wildcard

Top Contributor
Ich hatte es so verstanden das getSystemLookAndFeelClassName den falschen Wert liefert trotz gesetzem Property
 

FuriKuri

Mitglied
Wildcard und sparrow haben schon richtig verstanden.
javax.swing.UIManager.getSystemLookAndFeelClassName() spuckt auch javax.swing.plaf.metal.MetalLookAndFeel aus, obwohl wie oben "versucht" das zu ändern.

Freemind zum Beispiel meint auch, dass der Standard-LAF Metal ist
Default (System) Look & Feel: javax.swing.plaf.metal.MetalLookAndFeel
 

FuriKuri

Mitglied
wow danke das klappt aber leider erstmal nur über konsole.
was müsste ich tun, damit java das standardmäßig drin hat
 

Wildcard

Top Contributor
Nun, die Methode sieht so aus:
Java:
    public static String getSystemLookAndFeelClassName() {
	String systemLAF = (String)AccessController.doPrivileged(
                             new GetPropertyAction("swing.systemlaf"));
        if (systemLAF != null) {
            return systemLAF;
        }
	String osName = (String)AccessController.doPrivileged(
                             new GetPropertyAction("os.name"));

        if (osName != null) {
            if (osName.indexOf("Windows") != -1) {
                return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
            }
            else {
                String desktop = (String)AccessController.doPrivileged(
                             new GetPropertyAction("sun.desktop"));
                if ("gnome".equals(desktop)) {
                    // May be set on Linux and Solaris boxs.
                    return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
                }
                if ((osName.indexOf("Solaris") != -1) || 
		             (osName.indexOf("SunOS") != -1)) {
                    return "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
                }
            }
        }
        return getCrossPlatformLookAndFeelClassName();
    }
Ich würde mal versuchen das swing.systemlaf einfach noch zusätzlich in die Swing Properties Datei einzutragen, vielleicht frisst er es ja.
 

FuriKuri

Mitglied
Habe ich schon versucht, Hab jez zusätzlich noch versucht Java vorzugaukeln dass ich Gnome benutze hat aber leider auch nicht geklappt.
die swing.properties sieht jez so aus
Code:
swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
swing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
sun.desktop=gnome
 

Wildcard

Top Contributor
Vielleicht hilft es java als alias für java -Dswing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
in deiner Shell zu setzen
 

FuriKuri

Mitglied
vll eine blöde Frage aber kann ich irgndwo der JVM sagen, dass er immer bestimmten Parametern starten soll
 

FuriKuri

Mitglied
joa es klappt aber auch nur wenn die programme mit java ... starte. Wenn ich Java Programme über ein Skript oder ausm Nautilus starte gehts leider net.
 

FuriKuri

Mitglied
So für heute ist genug mit dem Problem. Hab bei ein paar Skripten den Parameter so hinzugefügt.
Ich danke dir erstmal Wildcard!!!
Wenigstens hab ich jez schonmal die Möglichkeit die Java Anwendungen nicht mehr so hässlich zu starten ;-) .
Falls noch einer Ideen hat für eine "einfachere" Lösung her damit.
 

Wildcard

Top Contributor
Falls noch einer Ideen hat für eine "einfachere" Lösung her damit.
Also eine einfache Möglichkeit wäre sicherlich Gnome statt Openbox zu verwenden :D
Für mich stellt sich die Situation so dar:
das defaultLNF Property dient nur dazu den Standard zu bestimmen wenn nicht explizit ein LnF vom Programm gesetzt wird. Wenn die Programme das System LnF setzen (was ja die meisten tun sollten) kommt bei dir aber kein Gnome, was soweit ja auch korrekt ist, da du Openbox verwendest.
Soviel zur Bestandsaufnahme.
Schaut man sich die Implementierung an, gibt es im Wesentlichen zwei Ansätze:
-dafür sorgen das sun.display gnome liefert. Dafür müsste man mal schauen wie der Wert da rein kommt
-der VM beibringen das sie gefälligst mit einem Property swing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel startet.
Beides müsste eigentlich möglich sein, allerdings fällt mir gerade auch nichts tolles ein. Wenn sich das ändert, melde ich mich.
 

FuriKuri

Mitglied
Ich bin erst seit kurzem auf Openbox umgestiegen und es sehr viele Dinge die mir dran gefallen. Im Prinzip läuft auch alles und kann alles benutzen was ich vorher auch benutzen konnte.
Naja trotzdem nochmal vielen Dank. Das meiste läuft ja jetzt auch so wie ich es will. Ist halt teilweise mit ein wenig mehr Arbeit verbunden aber "läuft" :p
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
F Setzen des LookAndFeel AWT, Swing, JavaFX & SWT 4
T LayoutManager LookAndFeel-Problem AWT, Swing, JavaFX & SWT 4
U LookAndFeel für eine Komponente AWT, Swing, JavaFX & SWT 2
N LookAndFeel Wie kann ich mein eigenes LookAndFeel machen? AWT, Swing, JavaFX & SWT 6
I LookAndFeel setzen AWT, Swing, JavaFX & SWT 17
I LookAndFeel AWT, Swing, JavaFX & SWT 15
GUI-Programmer Translucent JFrame mit System-LookAndFeel AWT, Swing, JavaFX & SWT 4
D LookAndFeel setzen AWT, Swing, JavaFX & SWT 2
hdi Swing ListCellRenderer und LookAndFeel AWT, Swing, JavaFX & SWT 11
K LookAndFeel LookAndFeel nur für einen Frame? AWT, Swing, JavaFX & SWT 6
B LookAndFeel für einen Komponenten AWT, Swing, JavaFX & SWT 2
J Swing LookAndFeel Klassenname herausfinden AWT, Swing, JavaFX & SWT 2
T Swing Substance LookAndFeel verhält sich merkwürdig AWT, Swing, JavaFX & SWT 4
G LookAndFeel AWT, Swing, JavaFX & SWT 5
G setLookAndFeel to default LookAndFeel? AWT, Swing, JavaFX & SWT 4
D LookAndFeel mit WindowBlinds AWT, Swing, JavaFX & SWT 2
DeeDee0815 LookAndFeel während der Laufzeit verstellen AWT, Swing, JavaFX & SWT 4
I LookAndFeel AWT, Swing, JavaFX & SWT 3
B Frage zu Synth LookAndFeel AWT, Swing, JavaFX & SWT 4
G Windows LookAndFeel - Classpath AWT, Swing, JavaFX & SWT 6
G Ändern der Standartschrift vom LookAndFeel AWT, Swing, JavaFX & SWT 4
G JButton LookAndFeel AWT, Swing, JavaFX & SWT 2
O LookAndFeel und Performance AWT, Swing, JavaFX & SWT 7
M Problem mit LookAndFeel auf unterschiedlichen Rechnern AWT, Swing, JavaFX & SWT 3
B XP-LookAndFeel + modifizierter JTableHeader unsichtbar AWT, Swing, JavaFX & SWT 3
M LookAndFeel? Erst beim 2.Mal Öffnen eines Menüs? AWT, Swing, JavaFX & SWT 3
T LookAndFeel Erstellung :: Problem mit JTabbedPanes AWT, Swing, JavaFX & SWT 2
D Font eines JLabels verändern, JLabel mit LookAndFeel-Format AWT, Swing, JavaFX & SWT 2
N LookAndFeel - Nicht gleich alles überschreiben AWT, Swing, JavaFX & SWT 8
G JFileChooser: leeres Fenster nach LookAndFeel-Wechel AWT, Swing, JavaFX & SWT 7
M LookAndFeel und Mnemonische Kürzel AWT, Swing, JavaFX & SWT 7
G LookAndFeel in extra Fenster einstellbar AWT, Swing, JavaFX & SWT 2
B wie behält man die aktuellen LookAndFeel einstellungen? AWT, Swing, JavaFX & SWT 7
M Swing Code funktioniert auf Windows aber nicht Linux... AWT, Swing, JavaFX & SWT 3
S (Swing)Vollbild anzeigen unter Linux/Mac AWT, Swing, JavaFX & SWT 6
T JFrame Icon unter Linux/Ubuntu AWT, Swing, JavaFX & SWT 11
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
O Problem mit JFrame auf Linux Mint 13 Maya in VirtualBox AWT, Swing, JavaFX & SWT 3
R Problem mit TrayIcon unter Windows/Linux AWT, Swing, JavaFX & SWT 7
S GUI aussehen unter Windows und Linux (und Mac) AWT, Swing, JavaFX & SWT 13
J Applet Linux(-(k)ubuntu-)-Firefox-Java-Plugin - Fensterschließprobleme die bei Windows so nicht auftreten AWT, Swing, JavaFX & SWT 4
Ivan Dolvich [Linux] JFileChooser sieht komisch aus... AWT, Swing, JavaFX & SWT 12
G SWT Control.print(gc) funktioniert in Win, in Linux nicht AWT, Swing, JavaFX & SWT 4
F AWT MouseMotionListener e.getButton() ist immer 0 unter Linux und Windows AWT, Swing, JavaFX & SWT 6
F AWT DnD von Dateien mit Sonderzeichen funktioniert unter Linux nicht AWT, Swing, JavaFX & SWT 3
P Linux Fensterhintergrund AWT, Swing, JavaFX & SWT 2
H Y-Position mit get-/setLocation() unter Linux/Enlightement16 inkonsistent AWT, Swing, JavaFX & SWT 3
C Swing Linux mag mein Swing-repaint() nicht... AWT, Swing, JavaFX & SWT 7
D SWT und Linux AWT, Swing, JavaFX & SWT 10
N JDesktop unter Linux AWT, Swing, JavaFX & SWT 4
P Swing [gelöst/erledigt] Gleicher Code läuft unterschiedlich unter Linux und Windows AWT, Swing, JavaFX & SWT 5
M Probleme unter Linux AWT, Swing, JavaFX & SWT 7
E Hat Netbeans unter Linux kein Designer für Swing? AWT, Swing, JavaFX & SWT 3
S KeyEvents in Linux und Windows AWT, Swing, JavaFX & SWT 14
L Problem mit "setVisible" unter LINUX AWT, Swing, JavaFX & SWT 5
G SWT Button mit Image und ohne Rand unter Linux? AWT, Swing, JavaFX & SWT 7
D AWT drawString funktioniert nicht unter Linux AWT, Swing, JavaFX & SWT 7
Noar IllegalComponentStateException unter Gnu/Linux AWT, Swing, JavaFX & SWT 2
M Keine Buttons oder sonstige Objekte in JFrame unter Linux AWT, Swing, JavaFX & SWT 4
F AWT Programm unter Linux anders als unter Windows ! AWT, Swing, JavaFX & SWT 8
M JDialog unter win und linux unterschiedliche größe nötig? AWT, Swing, JavaFX & SWT 4
F Schriftarten unter Windows und Linux AWT, Swing, JavaFX & SWT 6
T Tray-Icon-Menü unter Linux AWT, Swing, JavaFX & SWT 10
J JFrame Icon unter Linux AWT, Swing, JavaFX & SWT 2
I Drag and Drop funktioniert unter Linux nicht AWT, Swing, JavaFX & SWT 6
B Problem mit ImageIcon/Swing in Linux AWT, Swing, JavaFX & SWT 6
S SWT-Anwendung als startfähiges Jar unter Linux AWT, Swing, JavaFX & SWT 4
M SWT Darstellung Linux / Win verschieden? AWT, Swing, JavaFX & SWT 4
T Popup-Menü unter Linux AWT, Swing, JavaFX & SWT 2
S JFrame prob unter linux AWT, Swing, JavaFX & SWT 4
K Tip: Gui basierende Javaprogramme unter Linux ohne X AWT, Swing, JavaFX & SWT 16
B Fokus Problem unter Linux AWT, Swing, JavaFX & SWT 7
B setExtendedState klappt net unter linux AWT, Swing, JavaFX & SWT 2
M FileSystemView und Linux AWT, Swing, JavaFX & SWT 2
Z setCursor unter Linux AWT, Swing, JavaFX & SWT 7
O SWT-Anwendung für Windows und Linux verteilen AWT, Swing, JavaFX & SWT 3
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
S TableCellRender - Zelle auf editier-/anklickbar setzen AWT, Swing, JavaFX & SWT 5
berserkerdq2 Anchorpane warum kann ich nicht Anchors setzen AWT, Swing, JavaFX & SWT 6
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
E verschiedene Cursor setzen AWT, Swing, JavaFX & SWT 1
izoards Bild ausdrucken - PageFormat setzen geht nicht AWT, Swing, JavaFX & SWT 5
izoards *.doc Seitenränder per Java setzen... AWT, Swing, JavaFX & SWT 14
G Button Strings Effektiver setzen AWT, Swing, JavaFX & SWT 3
W Bounds setzen AWT, Swing, JavaFX & SWT 1
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JavaFX TextInputDialog: Focus auf Eingabefeldinhalt setzen und nach OK Inhalt leeren AWT, Swing, JavaFX & SWT 5
L JavaFX TableColumns mit CellFactory setzen AWT, Swing, JavaFX & SWT 9
J Standardwert in Choicebox setzen ? AWT, Swing, JavaFX & SWT 0
C Kleineres Bild an bestimmte Koordinaten setzen AWT, Swing, JavaFX & SWT 6
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
E Hintergrundfarbe setzen in JPanel funktioneirt nicht AWT, Swing, JavaFX & SWT 4
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
S JButtons an Koordinaten setzen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben