生成Substance皮肤Menu项的代码

为什么不能用addActionListener(new ActionListener()  。。)的方法,看前一篇文章http://www.cnblogs.com/youxin/archive/2013/06/16/3138225.html

皮肤:

     
    public static  String[] skins={"SubstanceAutumnLookAndFeel",
                            "SubstanceBusinessBlackSteelLookAndFeel",
                            "SubstanceBusinessBlueSteelLookAndFeel",
                            "SubstanceChallengerDeepLookAndFeel",
                            "SubstanceCremeCoffeeLookAndFeel",
                            "SubstanceEmeraldDuskLookAndFeel",
                            "SubstanceFieldOfWheatLookAndFeel",
                            "SubstanceGreenMagicLookAndFeel",
                            "SubstanceMagmaLookAndFeel",
                            "SubstanceMangoLookAndFeel",
                            "SubstanceMistAquaLookAndFeel",
                            "SubstanceModerateLookAndFeel",
                            "SubstanceNebulaBrickWallLookAndFeel",
                            "SubstanceRavenGraphiteGlassLookAndFeel",
                            "SubstanceSaharaLookAndFeel",
                            };

生成Item项:

JMenuItem[] skinMenuItems=new JMenuItem[skins.length];
        for( int i=0;i<skins.length;i++)
        {
             int type=i;
             skinMenuItems[i]=new JMenuItem(skins[i]);
            skinMenu.add(skinMenuItems[i]);
            
            skinMenuItems[i].addActionListener(new LAFListener("org.jvnet.substance.skin."+skins[i],this);
             }

        
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);   
        }   
  
    }   
  
}    

参考:http://www.blogjava.net/ivin/archive/2007/12/29/170869.html

原文地址:https://www.cnblogs.com/youxin/p/3138238.html