在項目中使用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關鍵字的高亮顯示。看起來比較費勁啊!
自力更生,自己來做代碼著色的工作!
posted on 2007-12-29 18:41
ivin 閱讀(2454)
評論(2) 編輯 收藏 所屬分類:
代碼收集