春風(fēng)博客

          春天里,百花香...

          導(dǎo)航

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統(tǒng)計(jì)

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個(gè)人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          一個(gè)感觀(LookAndFeel)菜單類及其用法

          1.類代碼如下
          package com.junglesong.mvc.common.menu;

          import java.awt.event.ActionEvent;
          import java.awt.event.ActionListener;

          import javax.swing.ButtonGroup;
          import javax.swing.JFrame;
          import javax.swing.JMenu;
          import javax.swing.JRadioButtonMenuItem;
          import javax.swing.SwingUtilities;
          import javax.swing.UIManager;

          /**
           * 程序風(fēng)格菜單
           * @author junglesong@gmail.com
           *
           */
          public class StyleMenu extends JMenu {
            // 程序的主框架
            final JFrame mainFrame;
           
            /**
             * 構(gòu)造函數(shù)
             * @param text:菜單條文字
             * @param frame:程序的主框架
             */
            public StyleMenu(String text,JFrame frame) {
              super(text);
              mainFrame=frame;
              addSubMenuItems();
            }

            /**
             * 添加下級(jí)菜單項(xiàng)
             *
             */
            private void addSubMenuItems() {
              // 取得系統(tǒng)當(dāng)前可用感觀數(shù)組
              UIManager.LookAndFeelInfo[] arr = UIManager
                  .getInstalledLookAndFeels();

              ButtonGroup buttongroup = new ButtonGroup();
              for (int i = 0; i < arr.length; i++) {
                JRadioButtonMenuItem styleMitem = new JRadioButtonMenuItem(
                    arr[i].getName(), i == 0);
                final String className = arr[i].getClassName();
               
                // 添加下級(jí)菜單項(xiàng)的事件相應(yīng)
                styleMitem.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                    try {
                      UIManager.setLookAndFeel(className);
                      SwingUtilities.updateComponentTreeUI(mainFrame);
                    } catch (Exception ex) {
                      System.out.println("Can't Change Lookandfeel Style to "
                          + className);
                    }
                  }
                });
                buttongroup.add(styleMitem);
                this.add(styleMitem);
              }
            }
          }


          2.用法如下

            JMenuBar menubar = new JMenuBar();
            mainFrame.setJMenuBar(menubar);
            ......
            menubar.add(Box.createHorizontalGlue());

            JMenu styleMenu = new StyleMenu("Syle", mainFrame);
            menubar.add(styleMenu);
            ......


          例圖:

          posted on 2007-06-28 08:47 sitinspring 閱讀(1917) 評(píng)論(2)  編輯  收藏 所屬分類: Swing

          評(píng)論

          # re: 一個(gè)感觀(LookAndFeel)菜單類及其用法 2007-06-29 17:42 ehe

          hehe  回復(fù)  更多評(píng)論   

          # re: 一個(gè)感觀(LookAndFeel)菜單類及其用法[未登錄] 2009-03-03 17:18 張旭

          能給我把你做的(一個(gè)感觀(LookAndFeel)菜單類及其用法)整個(gè)代碼,發(fā)給我么,謝謝
          我的郵箱是zhangxu1216@126.com  回復(fù)  更多評(píng)論   

          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
          主站蜘蛛池模板: 茶陵县| 绥化市| 新巴尔虎右旗| 普兰店市| 天气| 灌南县| 南投县| 突泉县| 义乌市| 元江| 呼图壁县| 浪卡子县| 三台县| 衡阳市| 临夏县| 镇宁| 长宁县| 乳山市| 天长市| 岳池县| 海盐县| 青河县| 广汉市| 平遥县| 泸溪县| 鄂托克旗| 广安市| 武乡县| 崇左市| 镇平县| 盐山县| 辽阳市| 洛宁县| 安龙县| 麻栗坡县| 澳门| 揭东县| 宁蒗| 岳池县| 正宁县| 侯马市|