藍(lán)色空間
          簡(jiǎn)單的程序人生
          posts - 11,comments - 70,trackbacks - 0
                  在項(xiàng)目中使用SubstanceLookAndFeel,就免不了要每一種感觀的Menu了。以下代碼就可以生成SubstanceLookAndFeel的Menu項(xiàng)代碼,方便自己和他人日后使用。
          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");
              添加感觀菜單項(xiàng)代碼
          /** 
          * 添加感觀菜單項(xiàng) 
          */ 
          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); 
              } 
          }  
          
              感觀菜單項(xiàng)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; 
              /** 
              * 感觀菜單項(xiàng)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); 
                      } 
              
                  } 
              
              }  
          
                  如果一個(gè)一個(gè)LookAndFeel的Class的找比較的麻煩,所以SubstanceLookAndFeel的那一段代碼是自己寫的程序生成的。
                  另外感覺(jué)blogjava的代碼格式不如javaeye好,什么時(shí)候建議dudu改一下,javaeye的java代碼著色和eclipse非常相似,看起來(lái)特別的舒服。在這就是那么幾個(gè)java關(guān)鍵字的高亮顯示。看起來(lái)比較費(fèi)勁啊! 
                  自力更生,自己來(lái)做代碼著色的工作!
          posted on 2007-12-29 18:41 ivin 閱讀(2457) 評(píng)論(2)  編輯  收藏 所屬分類: 代碼收集

          FeedBack:
          # re: 生成Substance皮膚Menu項(xiàng)的代碼
          2008-02-27 13:19 | 隔葉黃鶯
          我采用的是瀏覽器解析時(shí)動(dòng)態(tài)著色,這樣讓日志本身體積會(huì)小,如果將來(lái)匯集成冊(cè),帶上相應(yīng)樣式及js即可;缺點(diǎn)就是中間過(guò)程會(huì)展露出來(lái)。而樓主是預(yù)生成的代碼內(nèi)容,解析前進(jìn)行排版及加上樣式的,就是javaeye那樣在輸入時(shí)轉(zhuǎn)換。  回復(fù)  更多評(píng)論
            
          # LAF_MAP.put("EmeraldDusk", "org.jvnet.substance.skin.SubstanceEmeraldDuskLookAndFeel");
          2008-09-05 22:11 | sfdwe

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 那坡县| 介休市| 连城县| 临洮县| 攀枝花市| 蒙山县| 长岭县| 海原县| 蒙阴县| 扶风县| 深水埗区| 成都市| 玛沁县| 崇文区| 漠河县| 定兴县| 瑞金市| 华安县| 如皋市| 枣强县| 福贡县| 镇远县| 陈巴尔虎旗| 班玛县| 南通市| 炎陵县| 庆元县| 木兰县| 姚安县| 岳阳县| 汉沽区| 安丘市| 清水河县| 汝州市| 万全县| 福鼎市| 宁德市| 神农架林区| 高阳县| 彰化市| 武强县|