UIManager – “Java in hübsch”

February 12th, 2010 by author Leave a reply »

Swing-Anwendungen sehen erstmal etwas “gewöhnungsbedürftig” aus. Um dies zu ändern, kann man den UIManager nutzen:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Mit dieser kleinen Zeile hat man seiner Java-Anwendung das Aussehen des “Betriebssystems” verpasst.


Aber es geht noch mehr. Man kann nicht nur zwischen dem Layout wechseln, welches auf allen Plattformen vorhanden ist (UIManager.getCrossPlatformLookAndFeelClassName()), sondern auch der Kreativität freien Lauf lassen und eigene LookAndFeels erstellen (Guidelines)- aber das geht zu weit. Versuchen wir mit den bereits installierten auszukommen:

final Map selectableLafs = new HashMap();
// alle installierten LookAndFeels ermitteln
final LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
for(LookAndFeelInfo laf : lafs) {
selectableLafs.put(laf.getName(), laf.getClassName();
}

In dem Objekt selectableLafs sind nun alle LookAndFeels gespeichert, welche auf dem System installiert sind. Um nun ein LookAndFeel auszuwählen (nennen wir es mal ‘windows’), müsst ihr nun den folgenden Code nutzen:
UIManager.setLookAndFeel(selectableLafs.get('windows'));

So weit so gut, ABER: Dies funktioniert nur solange, wie ihr euer JFrame (oder eure anderen Componenten) noch nicht angezeigt habt. Wollt ihr während der Laufzeit (Sichtbarkeit des Fensters/der Komponenten) euer LAF anpassen, dann solltet ihr noch ein Update auf eure Components machen mittels:
SwingUtilities.updateComponentTreeUI(topWindow);

Sollten die vorhanden L&Fs nicht ausreichen, dann könnte euch vielleicht die Seite Javootoo.com glücklich machen.

VN:F [1.9.22_1171]
Rating: 5.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
UIManager - "Java in hübsch", 5.5 out of 10 based on 2 ratings
Advertisement

Leave a Reply