【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/

posted @   飞翔在天  阅读(7313)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示