{"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

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());<\/code><\/p>\n

Mit dieser kleinen Zeile hat man seiner Java-Anwendung das Aussehen des „Betriebssystems“ verpasst.<\/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>\n

final 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

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:
\nUIManager.setLookAndFeel(selectableLafs.get('windows'));<\/code><\/p>\n

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:
\nSwingUtilities.updateComponentTreeUI(topWindow);<\/code><\/p>\n

Sollten die vorhanden L&Fs nicht ausreichen, dann k\u00f6nnte euch vielleicht die Seite Javootoo.com<\/a> gl\u00fccklich machen.<\/p>\n","protected":false},"excerpt":{"rendered":"

LookAndFeel von Java gibt Swing 2D -Anwendungen ein neues Gesicht. Hier erfahrt ihr, wie ihr ein alternatives LookAndFeel nutzen k\u00f6nnt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[87,5],"_links":{"self":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/5"}],"collection":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":10,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/5\/revisions\/52"}],"wp:attachment":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/media?parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/categories?post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/tags?post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}