在项目中使用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关键字的高亮显示。看起来比较费劲啊!
自力更生,自己来做代码着色的工作!
分享到:
相关推荐
在"压缩包子文件的文件名称列表"中,我们只看到了"substance6.1"这一项,这可能是Substance 6.1库的主要文件或者包含所有相关资源的目录。这个压缩包通常会包含以下几部分: 1. `substance.jar`:Substance库的核心...
Substance 是一个流行的 Java Swing 库,为 Java GUI 应用程序提供了丰富的皮肤和主题支持。这个源码包包含了 Substance 库的实现细节,对于深入理解 Swing 的自定义外观和用户体验设计有着重要的学习价值。以下是...
更多资源详见: http://blog.csdn.net/fanxiaobin577328725/article/details/51894331 (包含图书各部分和随书源码,还有其它资源的详细下载地址)
为了提升用户体验和视觉吸引力,开发人员可以使用第三方库来改变Swing应用程序的皮肤,其中"Substance"就是一种广受欢迎的皮肤库。 Substance库为Swing应用提供了多种独特的视觉主题,这些主题不仅改变了控件的外观...
6. **开源社区支持**:作为开源项目,Substance有活跃的社区支持,开发者可以在官方论坛或GitHub上寻求帮助、报告问题或贡献代码,共同推动项目的进步。 在实际应用中,你可以通过以下步骤集成Substance到你的Java ...
Swing Substance是一款为Java Swing界面库提供丰富主题和皮肤的框架,主要用于提升Java应用程序的用户界面美观度和用户体验。Substance-6.0是该框架的一个版本,它包含了一系列精心设计的UI主题,使得开发者可以轻松...
Swing开源皮肤Substance6.1是一款为Java Swing应用程序提供美观界面的库,它极大地提升了Swing组件的视觉效果,让应用看起来更加现代和专业。Substance库是完全开源的,允许开发者根据需要自定义和扩展皮肤,为用户...
在公司做项目,特别是业务系统的时候,大量的表单和增删改查,而且后台Ui经常用一些easyui等jquery ui框架,数据库一张表对应一个domian.表字段对应domain的属性,也对应这前台js ...美化swing界面 substance 皮肤包
2. **初始化Substance皮肤**:在应用启动时,通过调用Substance API来选择和设置皮肤。 3. **构建Ribbon界面**:使用Flamingo提供的组件和布局管理器来创建Ribbon界面,包括菜单、工具栏和各个功能区。 4. **定制...
为了提升用户界面的视觉吸引力,开发者可以使用第三方库,如Substance库,来改变Swing组件的皮肤和主题。Substance.jar是一个流行的Java库,专门用于为Swing应用添加各种美观的主题和皮肤。 在Java中使用Substance...
Substance 是一个流行的 Java 工具,主要用于创建和定制用户界面的皮肤,它为 Swing 应用程序提供了丰富的视觉样式。在 Java 开发中,Swing 是一个用于构建图形用户界面(GUI)的库,而 Substance 提供了超越 Swing ...
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 ...
使用Substance,开发者可以通过简单的代码就能为Swing应用换上新的皮肤。例如,可以使用以下代码片段切换到特定的主题: ```java LookAndFeel.uninstallLookAndFeel(); LookAndFeel.installLookAndFeel( ...
Substance in Unity.unitypackage
UIManager.setLookAndFeel("org.jvnet.substance.api.skin.SubstanceGeminiLookAndFeel");//默认皮肤 SubstanceGeminiLookAndFeel.setSkin(new AutumnSkin());//特殊皮肤 jFrame fl=new jFrame();//你自己写的窗口 ...
`substance-6.0-sources.jar` 文件则包含 Substance 框架的源代码。这个文件对于开发者来说尤其重要,因为它允许他们深入理解 Substance 的工作原理,查看内部实现细节,调试问题,以及根据需要自定义或扩展 ...
Substance Designer 2019是一款强大的材质纹理贴图生成工具,专为3D艺术家和设计师打造。这个软件是Allegorithmic公司(现已被Adobe收购)的产品,被誉为3D行业的标准工具之一,用于创建复杂的、程序化的纹理和材质...
substance5.2.jar substance swing 皮肤
在描述中提到的"配置皮肤的简单代码",通常是指通过几行Java代码就可以切换或定制Substance的主题。例如,开发者可能只需要调用SubstanceLookAndFeel类的静态方法来设定应用的主题,如下所示: ```java try { ...
一直以来都认为用Swing做出来的程序太难看了,但是又无可奈何,但现在好了,有了substance.jar,只需要在你的程序中添加几行简单的代码,就可以做出非常漂亮的界面来,如果不是亲眼看到,你也许不敢相信这是真的;...