`
阅读更多
        在项目中使用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 6.1 swing 皮肤包

    在"压缩包子文件的文件名称列表"中,我们只看到了"substance6.1"这一项,这可能是Substance 6.1库的主要文件或者包含所有相关资源的目录。这个压缩包通常会包含以下几部分: 1. `substance.jar`:Substance库的核心...

    substance(皮肤)源码

    Substance 是一个流行的 Java Swing 库,为 Java GUI 应用程序提供了丰富的皮肤和主题支持。这个源码包包含了 Substance 库的实现细节,对于深入理解 Swing 的自定义外观和用户体验设计有着重要的学习价值。以下是...

    substance皮肤包5.3&6.0

    更多资源详见: http://blog.csdn.net/fanxiaobin577328725/article/details/51894331 (包含图书各部分和随书源码,还有其它资源的详细下载地址)

    swing皮肤-substance

    为了提升用户体验和视觉吸引力,开发人员可以使用第三方库来改变Swing应用程序的皮肤,其中"Substance"就是一种广受欢迎的皮肤库。 Substance库为Swing应用提供了多种独特的视觉主题,这些主题不仅改变了控件的外观...

    swing开源皮肤Substance6.0

    6. **开源社区支持**:作为开源项目,Substance有活跃的社区支持,开发者可以在官方论坛或GitHub上寻求帮助、报告问题或贡献代码,共同推动项目的进步。 在实际应用中,你可以通过以下步骤集成Substance到你的Java ...

    swing substance-6.0.jar 皮肤包.zip

    Swing Substance是一款为Java Swing界面库提供丰富主题和皮肤的框架,主要用于提升Java应用程序的用户界面美观度和用户体验。Substance-6.0是该框架的一个版本,它包含了一系列精心设计的UI主题,使得开发者可以轻松...

    swing开源皮肤Substance6.1

    Swing开源皮肤Substance6.1是一款为Java Swing应用程序提供美观界面的库,它极大地提升了Swing组件的视觉效果,让应用看起来更加现代和专业。Substance库是完全开源的,允许开发者根据需要自定义和扩展皮肤,为用户...

    自己开发java代码生成工具

    在公司做项目,特别是业务系统的时候,大量的表单和增删改查,而且后台Ui经常用一些easyui等jquery ui框架,数据库一张表对应一个domian.表字段对应domain的属性,也对应这前台js ...美化swing界面 substance 皮肤包

    Flamingo(ribbon)、substance6.3 Java皮肤插件

    2. **初始化Substance皮肤**:在应用启动时,通过调用Substance API来选择和设置皮肤。 3. **构建Ribbon界面**:使用Flamingo提供的组件和布局管理器来创建Ribbon界面,包括菜单、工具栏和各个功能区。 4. **定制...

    Java的Swing界面皮肤、主题使用(substance.jar)内附使用教程

    为了提升用户界面的视觉吸引力,开发者可以使用第三方库,如Substance库,来改变Swing组件的皮肤和主题。Substance.jar是一个流行的Java库,专门用于为Swing应用添加各种美观的主题和皮肤。 在Java中使用Substance...

    substance(皮肤JAR跟使用办法)

    Substance 是一个流行的 Java 工具,主要用于创建和定制用户界面的皮肤,它为 Swing 应用程序提供了丰富的视觉样式。在 Java 开发中,Swing 是一个用于构建图形用户界面(GUI)的库,而 Substance 提供了超越 Swing ...

    Substance--JAVA的皮肤更换包

    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的开源外观皮肤Substance5.2,源码和jar相关library全

    使用Substance,开发者可以通过简单的代码就能为Swing应用换上新的皮肤。例如,可以使用以下代码片段切换到特定的主题: ```java LookAndFeel.uninstallLookAndFeel(); LookAndFeel.installLookAndFeel( ...

    Substance in Unity.unitypackage

    Substance in Unity.unitypackage

    substance-6.2.jar

    UIManager.setLookAndFeel("org.jvnet.substance.api.skin.SubstanceGeminiLookAndFeel");//默认皮肤 SubstanceGeminiLookAndFeel.setSkin(new AutumnSkin());//特殊皮肤 jFrame fl=new jFrame();//你自己写的窗口 ...

    substance-6.0.jar substance-6.0-sources.jar

    `substance-6.0-sources.jar` 文件则包含 Substance 框架的源代码。这个文件对于开发者来说尤其重要,因为它允许他们深入理解 Substance 的工作原理,查看内部实现细节,调试问题,以及根据需要自定义或扩展 ...

    Substance Designer 2019材质纹理贴图生成工具.rar

    Substance Designer 2019是一款强大的材质纹理贴图生成工具,专为3D艺术家和设计师打造。这个软件是Allegorithmic公司(现已被Adobe收购)的产品,被誉为3D行业的标准工具之一,用于创建复杂的、程序化的纹理和材质...

    substance5.2.jar

    substance5.2.jar substance swing 皮肤

    substance-swingx.jar

    在描述中提到的"配置皮肤的简单代码",通常是指通过几行Java代码就可以切换或定制Substance的主题。例如,开发者可能只需要调用SubstanceLookAndFeel类的静态方法来设定应用的主题,如下所示: ```java try { ...

    JavaSwing substance.jar

    一直以来都认为用Swing做出来的程序太难看了,但是又无可奈何,但现在好了,有了substance.jar,只需要在你的程序中添加几行简单的代码,就可以做出非常漂亮的界面来,如果不是亲眼看到,你也许不敢相信这是真的;...

Global site tag (gtag.js) - Google Analytics