【Java Swing】界面主题设置
在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风格(提供直观显示其各种主题的效果,同时推荐下载其源码学习各种控件的使用方法)
----- 参考附件
- 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:商业的,感觉更一般