在项目中使用SubstanceLookAndFeel,就免不了要每一种感观的Menu了。以下代码就可以生成SubstanceLookAndFeel的Menu项代码,方便自己和他人日后使用。
public static Map LAF_MAP = new TreeMap();//使用TreeMap是为了保证MenuItem有序
LAF_MAP.put("Windows", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");//Windows感观
LAF_MAP.put("Substance", "org.jvnet.substance.SubstanceLookAndFeel");
LAF_MAP.put("Autumn", "org.jvnet.substance.skin.SubstanceAutumnLookAndFeel");
LAF_MAP.put("BusinessBlackSteel", "org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel");
LAF_MAP.put("BusinessBlueSteel", "org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel");
LAF_MAP.put("Business", "org.jvnet.substance.skin.SubstanceBusinessLookAndFeel");
LAF_MAP.put("ChallengerDeep", "org.jvnet.substance.skin.SubstanceChallengerDeepLookAndFeel");
LAF_MAP.put("CremeCoffee", "org.jvnet.substance.skin.SubstanceCremeCoffeeLookAndFeel");
LAF_MAP.put("Creme", "org.jvnet.substance.skin.SubstanceCremeLookAndFeel");
LAF_MAP.put("EmeraldDusk", "org.jvnet.substance.skin.SubstanceEmeraldDuskLookAndFeel");
LAF_MAP.put("FieldOfWheat", "org.jvnet.substance.skin.SubstanceFieldOfWheatLookAndFeel");
LAF_MAP.put("GreenMagic", "org.jvnet.substance.skin.SubstanceGreenMagicLookAndFeel");
LAF_MAP.put("Magma", "org.jvnet.substance.skin.SubstanceMagmaLookAndFeel");
LAF_MAP.put("Mango", "org.jvnet.substance.skin.SubstanceMangoLookAndFeel");
LAF_MAP.put("MistAqua", "org.jvnet.substance.skin.SubstanceMistAquaLookAndFeel");
LAF_MAP.put("MistSilver", "org.jvnet.substance.skin.SubstanceMistSilverLookAndFeel");
LAF_MAP.put("Moderate", "org.jvnet.substance.skin.SubstanceModerateLookAndFeel");
LAF_MAP.put("NebulaBrickWall", "org.jvnet.substance.skin.SubstanceNebulaBrickWallLookAndFeel");
LAF_MAP.put("Nebula", "org.jvnet.substance.skin.SubstanceNebulaLookAndFeel");
LAF_MAP.put("OfficeBlue2007", "org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel");
LAF_MAP.put("OfficeSilver2007", "org.jvnet.substance.skin.SubstanceOfficeSilver2007LookAndFeel");
LAF_MAP.put("RavenGraphiteGlass", "org.jvnet.substance.skin.SubstanceRavenGraphiteGlassLookAndFeel");
LAF_MAP.put("RavenGraphite", "org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
LAF_MAP.put("Raven", "org.jvnet.substance.skin.SubstanceRavenLookAndFeel");
LAF_MAP.put("Sahara", "org.jvnet.substance.skin.SubstanceSaharaLookAndFeel");
添加感观菜单项代码
/**
* 添加感观菜单项
*/
private void addLAFMenuItem() {
for (Map.Entry entry : Config.LAF_MAP.entrySet()) {
JRadioButtonMenuItem lafItem = new JRadioButtonMenuItem(entry.getKey());
lafItem.addActionListener(new LAFListener(entry.getValue(), this));
lafGroup.add(lafItem);
menuLAF.add(lafItem);
}
}
感观菜单项ActionListener
package org.ekit.ui.listener;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.LookAndFeel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
/**
* 感观菜单项ActionListener
* @author ivin
*/
public class LAFListener implements ActionListener {
private String className;
private Component com;
public LAFListener(String className, Component com) {
this.className = className;
this.com = com;
}
public void actionPerformed(ActionEvent e) {
try {
Object obj = Class.forName(className).newInstance();
if (obj instanceof LookAndFeel) {
UIManager.setLookAndFeel(className);
}
SwingUtilities.updateComponentTreeUI(com);
} catch (ClassNotFoundException ex) {
Logger.getLogger(LAFListener.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(LAFListener.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(LAFListener.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(LAFListener.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
如果一个一个LookAndFeel的Class的找比较的麻烦,所以SubstanceLookAndFeel的那一段代码是自己写的程序生成的。
另外感觉blogjava的代码格式不如javaeye好,什么时候建议dudu改一下,javaeye的java代码着色和eclipse非常相似,看起来特别的舒服。在这就是那么几个java关键字的高亮显示。看起来比较费劲啊!
自力更生,自己来做代码着色的工作!
分享到:
相关推荐
substance(皮肤)的源码
更多资源详见: http://blog.csdn.net/fanxiaobin577328725/article/details/51894331 (包含图书各部分和随书源码,还有其它资源的详细下载地址)
在公司做项目,特别是业务系统的时候,大量的表单和增删改查,而且后台Ui经常用一些easyui等jquery ui框架,数据库一张表对应一个domian.表字段对应domain的属性,也对应这前台js ...美化swing界面 substance 皮肤包
吐血推荐 绝对的好东西 已经将是使用方法和所包含的皮肤主题列出来了 java要是桌面程序都这么做估计就没C#的活路了
swing漂亮皮肤Substance6.0,源码和jar相关library全,开源,官方网站下载整理。吐血推荐
流行皮肤substance
Property name for specifying skin to be used on the specific root pane. This property can only be installed on a JRootPane and will affect all the controls in that root pane. The value must be an ...
swing漂亮皮肤Substance6.1,源码和jar相关library全,开源,官方网站下载整理。吐血推荐
substance 6.1版本,包含源码,并提供开发所需的依赖Jar
substance5.2.jar substance swing 皮肤
Substance Designer 2019材质纹理贴图生成工具
Substance Designer 2020材质纹理贴图生成工具
swing的皮肤包 substance.jar 可以设置swing组件的外观
自己找的swing皮肤包substance源码,在自己Eclipse上成功build的后,直接将项目压缩发上来的,想看的小伙伴们直接解压导入Eclipse就ok了,可以直接build的,里边包含了很多皮肤使用的例子,test包
找了很久才找到能够正常使用的substance和swingx 下载之后解压得到三个文件 1.substance-swingx.jar 2.swingx.jar 3.配置皮肤的简单代码
swing的开源外观皮肤Substance5.2,源码和jar相关library全,官方全新整理。
Allegorithmic Substance Painter 用户手册
Substance贴图工具Allegorithmic Substance Designer 5.3.4 build 17162 (x64);Substance贴图工具Allegorithmic Substance Designer 5.3.4 build 17162 (x64)
swing 皮肤 substance
Substance Designer 曲线程序插件,非常强大,内有demo示例