{"id":5,"date":"2010-02-12T08:08:20","date_gmt":"2010-02-12T08:08:20","guid":{"rendered":"http:\/\/www.webmaid.de\/?p=5"},"modified":"2010-02-18T07:16:04","modified_gmt":"2010-02-18T06:16:04","slug":"uimanager-java-in-hubsch","status":"publish","type":"post","link":"https:\/\/www.webmaid.de\/2010\/02\/uimanager-java-in-hubsch\/","title":{"rendered":"UIManager – „Java in h\u00fcbsch“"},"content":{"rendered":"
Swing-Anwendungen sehen erstmal etwas „gew\u00f6hnungsbed\u00fcrftig“ aus. Um dies zu \u00e4ndern, kann man den UIManager nutzen:<\/p>\n
Mit dieser kleinen Zeile hat man seiner Java-Anwendung das Aussehen des „Betriebssystems“ verpasst.<\/p>\n In dem Objekt selectableLafs sind nun alle LookAndFeels gespeichert, welche auf dem System installiert sind. Um nun ein LookAndFeel auszuw\u00e4hlen (nennen wir es mal ‚windows‘), m\u00fcsst ihr nun den folgenden Code nutzen: So weit so gut, ABER: Dies funktioniert nur solange, wie ihr euer JFrame (oder eure anderen Componenten) noch nicht angezeigt habt. Wollt ihr w\u00e4hrend der Laufzeit (Sichtbarkeit des Fensters\/der Komponenten) euer LAF anpassen, dann solltet ihr noch ein Update auf eure Components machen mittels:UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());<\/code><\/p>\n
\nAber es geht noch mehr. Man kann nicht nur zwischen dem Layout wechseln, welches auf allen Plattformen vorhanden ist (UIManager.getCrossPlatformLookAndFeelClassName()), sondern auch der Kreativit\u00e4t freien Lauf lassen und eigene LookAndFeels erstellen<\/a> (Guidelines<\/a>)- aber das geht zu weit. Versuchen wir mit den bereits installierten auszukommen:<\/p>\nfinal Map selectableLafs = new HashMap();
\n\/\/ alle installierten LookAndFeels ermitteln
\nfinal LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
\nfor(LookAndFeelInfo laf : lafs) {
\nselectableLafs.put(laf.getName(), laf.getClassName();
\n}<\/code><\/p>\n
\nUIManager.setLookAndFeel(selectableLafs.get('windows'));<\/code><\/p>\n
\nSwingUtilities.updateComponentTreeUI(topWindow);<\/code><\/p>\n