在Java中讓用戶能夠動態地更改應用的外觀主題,可以給用戶更好地體驗,具體的實現方式是:
1,先使用UIManager.setLookAndFeel(String s)方法設定對應的外觀
2,再使用SwingUtilities.updateComponentTreeUI(Component c)方法立刻更新應用
JDK默認僅包含了基本的幾種風格
// Metal風格 (默認) String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel"; UIManager.setLookAndFee(lookAndFeel); // Windows風格 String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; UIManager.setLookAndFee(lookAndFeel); // Windows Classic風格 String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"; UIManager.setLookAndFee(lookAndFeel); // Motif風格 String lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; UIManager.setLookAndFeel(lookAndFeel); // Mac風格 (需要在相關的操作系統上方可實現) String lookAndFeel = "com.sun.java.swing.plaf.mac.MacLookAndFeel"; UIManager.setLookAndFeel(lookAndFeel); // GTK風格 (需要在相關的操作系統上方可實現) String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; UIManager.setLookAndFeel(lookAndFeel); // 可跨平台的默認風格 String lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName(); UIManager.setLookAndFeel(lookAndFeel);
// 當前系統的風格 String lookAndFeel = UIManager.getSystemLookAndFeelClassName(); UIManager.setLookAndFeel(lookAndFeel);
一些三方的lookAndFeel
########## 優選 ##########
Weblaf:非常贊的套件,界面現代、簡約。依賴包較少。 有開源也有商業協議,個人最喜歡的皮膚。
https://github.com/mgarin/weblaf
PgsLookAndFeel:界面簡約現代,Apache2開源協議
http://www.pagosoft.com/projects/pgslookandfeel/
Seaglass:蠻美觀的UI,界面現代,是基於Java 7自帶皮膚Nimbus改進
https://github.com/khuxtable/seaglass/wiki
beautyeye:國人開發的UI,界面現代
https://github.com/JackJiang2011/beautyeye
########## 中選 ##########
Synthetica:較豐富的UI風格,但對中文字體的支持有問題。一半的皮膚免費,但其中一些較美觀的需要商業授權
http://www.javasoft.de/synthetica/themes/
Jtattoo:分GPL / LGPL / Apache三種協議,有開源也有商業版,個人較喜歡其中的Luna風格(提供直觀顯示其各種主題的效果,同時推薦下載其源碼學習各種控件的使用方法)
http://www.jtattoo.net/
----- 參考附件
Insubstantial:substance項目的分支項目
https://github.com/Insubstantial/insubstantial
Nimbus:Java SE 6 Update 10以后Oracle內置的皮膚,如果想安全穩定,選它沒錯了
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html
########## 其他 ##########
Quaqua:整的很像MAC OS的界面
http://www.randelshofer.ch/quaqua/index.html
Alloy:商業的,感覺一般
http://lookandfeel.incors.com/
JGoodies:商業的,感覺更一般
http://www.jgoodies.com/products/swing-suite/