【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风格(提供直观显示其各种主题的效果,同时推荐下载其源码学习各种控件的使用方法

           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/

原文地址:https://www.cnblogs.com/clarino/p/8668160.html