生成Substance皮肤Menu项的代码
2013-06-16 00:15 youxin 阅读(1238) 评论(0) 收藏 举报为什么不能用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
浙公网安备 33010602011771号