<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 28,  comments - 15,  trackbacks - 0
    • 介紹
      菜單(Menu類、MenuItem類)是常用的SWT組件,Menu是一個菜單欄,也是一個容器,可以容納MenuItem。Menu的容器作用主要體現在以下兩個方面:

               1.作為整個菜單體系的容器。
               2.作為同一菜單欄下多級菜單的分割容器。

      在下面的代碼中您將認識到這一點。

     

    • 式樣

             Menu式樣
             SWT.BAR   : 菜單欄,用于主菜單。
             SWT.DROP_DOWN   : 下拉菜單用于子菜單。
             SWT.POP_UP   :   鼠標右鍵彈出式菜單。

             MenuItem式樣
             SWT.CASCADE   : 有子菜單的菜單項。
             SWT.CHECK   : 選中后前面帶小鉤。
             SWT.PUSH   :   普通型菜單項。
             SWT.RADIO   :   選中后前面帶一小點。
             SWT.SEPERATOR   : ---- 分隔符.

         演示代碼

    public class MethodUtil {
     
     
      public void buildMenus(){
       
          Display display = new Display();
          Shell shell = new Shell(display);
       
          Label label = new Label(shell,SWT.BORDER|SWT.RIGHT);
          label.setBounds(10, 10, 120, 140);
          label.setText("這里是標簽");
          label.setFont(new Font(display,"宋體",14,SWT.BOLD));
          label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
       
          //這里指定是主菜單,且菜單方向是從右到左排列
          Menu mainMenu = createMenu(shell, SWT.BAR|SWT.RIGHT_TO_LEFT);
          shell.setMenuBar(mainMenu);
       
          MenuItem fileMenuItem = createMenuItem(mainMenu, SWT.CASCADE, "文件&F", null, SWT.CONTROL+'f', true, null);
          Menu fileMenu = createMenu(shell, SWT.DROP_DOWN, fileMenuItem, true);
          MenuItem createItem = createMenuItem(fileMenu, SWT.CASCADE, "新建&C", null, SWT.CONTROL+'c', true, null);
          Menu createMenu = createMenu(shell, SWT.DROP_DOWN, createItem, true);
       
          /*采用反射機制調用調用事件處理方法*/
          Class[] c = new Class[1];
          Object[] o = new Object[1];
          c[0] = Label.class;
          o[0] = label;
          MenuItem createProject = createMenuItem(createMenu, SWT.PUSH, "項目\tControl+Shit+N", null, SWT.CONTROL+SWT.SHIFT+'N', true, "changeContent",c,o);
          MenuItem createPackege = this.createMenuItem(createMenu, SWT.PUSH, "包&I", null, SWT.CONTROL+'I', true, null);
          MenuItem createClass = this.createMenuItem(createMenu, SWT.PUSH, "類&K", null, SWT.CONTROL+'K', true, null);
       
          MenuItem open = this.createMenuItem(fileMenu, SWT.PUSH, "打開&S", null, SWT.CONTROL+'S', true, null);
          MenuItem exit = this.createMenuItem(fileMenu, SWT.PUSH, "關閉&S", null, SWT.CONTROL+'M', true, null);
       
          MenuItem help = this.createMenuItem(mainMenu, SWT.PUSH, "幫助&H", null, SWT.CONTROL+'H', true, null);
       

          shell.pack();
          shell.open();
       
          while(!shell.isDisposed()){
              if(!display.readAndDispatch()){
                  display.sleep();
           }
          }
       
          display.dispose();
         }
      
      public void changeContent(Label label){
       label.setText("我變,我變,我變變變!創建工程!");
      }

      protected Menu createMenu(Menu parent, boolean enabled) {
          Menu m = new Menu(parent);
          m.setEnabled(enabled);
          return m;
      }
      protected Menu createMenu(MenuItem parent, boolean enabled) {
          Menu m = new Menu(parent);
          m.setEnabled(enabled);
          return m;
      }
      protected Menu createMenu(Shell parent, int style) {
          Menu m = new Menu(parent, style);
          return m;
      }
      protected Menu createMenu(Shell parent, int style,
                                MenuItem container, boolean enabled) {
          Menu m = createMenu(parent, style);
          m.setEnabled(enabled);
          container.setMenu(m);
          return m;
      }
      protected Menu createPopupMenu(Shell shell) {
          Menu m = new Menu(shell, SWT.POP_UP);
          shell.setMenu(m);
          return m;
      }
      protected Menu createPopupMenu(Shell shell, Control owner) {
          Menu m = createPopupMenu(shell);
          owner.setMenu(m);
          return m;
      }
      
      protected MenuItem createMenuItem(Menu parent, int style, String text,
                    Image icon, int accel, boolean enabled,
                    String callback,Class[] c,Object[] o){
       MenuItem mi = new MenuItem(parent, style);
          if (text != null) {
              mi.setText(text);
          }
          if (icon != null) {
              mi.setImage(icon);
          }
          if (accel != -1) {
              mi.setAccelerator(accel);
          }
          mi.setEnabled(enabled);
          if (callback != null) {
              registerCallback(mi, this, callback,c,o);
          }
          return mi;
      }
      protected MenuItem createMenuItem(Menu parent, int style, String text,
                                        Image icon, int accel, boolean enabled,
                                        String callback) {
          MenuItem mi = new MenuItem(parent, style);
          if (text != null) {
              mi.setText(text);
          }
          if (icon != null) {
              mi.setImage(icon);
          }
          if (accel != -1) {
              mi.setAccelerator(accel);
          }
          mi.setEnabled(enabled);
          if (callback != null) {
              registerCallback(mi, this, callback);
          }
          return mi;
      }

      protected void registerCallback(final MenuItem mi,
                 final Object handler,
                 final String handlerName) {
       mi.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
         try {
         Method m = handler.getClass().getMethod(handlerName, null);
         m.invoke(handler, null);
         }
         catch (Exception ex) {
         ex.printStackTrace();
         }
        }
       });
      }
      
      protected void registerCallback(final MenuItem mi,final Object handler,final String handlerName,final Class[] cs,final Object[] params){
       mi.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
         try {
         Method m = handler.getClass().getMethod(handlerName, cs);
         m.invoke(handler, params);
         }
         catch (Exception ex) {
         ex.printStackTrace();
         }
        }
       });
      }
     
    }

    /*調用測試*/
    public class MenuTestDesign {
     
     public static void main(String[] arg){
      
      
      MethodUtil u = new MethodUtil();
      u.buildMenus();
      
     }

    }

    運行結果:



    posted on 2009-08-13 17:01 zhangxl 閱讀(1176) 評論(0)  編輯  收藏 所屬分類: SWT、SWING、AWT

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(17)

    隨筆檔案(28)

    文章分類(30)

    文章檔案(30)

    相冊

    收藏夾(2)

    hibernate

    java基礎

    mysql

    xml

    關注

    壓力測試

    算法

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 96257
    • 排名 - 601

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 好男人视频社区精品免费| 好男人www免费高清视频在线 | 国产精品观看在线亚洲人成网| 13一14周岁毛片免费| 亚洲网站在线播放| 91成人在线免费观看| 亚洲成aⅴ人片在线影院八| 成人浮力影院免费看| 亚洲香蕉在线观看| 好男人www免费高清视频在线| 亚洲中文字幕无码久久2020| 成人看的午夜免费毛片| 亚洲成AV人片高潮喷水| 免费中文字幕在线观看| 插鸡网站在线播放免费观看| 亚洲精品亚洲人成在线观看| 国产猛男猛女超爽免费视频| 久久精品国产亚洲AV电影| 免费福利在线播放| 亚洲综合精品成人| 免费人成视频在线观看视频| 亚洲第一视频在线观看免费| 久久久久亚洲av无码专区蜜芽 | 黄页网站免费观看| 亚洲依依成人亚洲社区| 免费国产综合视频在线看| 一日本道a高清免费播放| 亚洲国产精品久久66| 久久久青草青青国产亚洲免观 | 国产精品无码免费专区午夜| 亚洲va久久久噜噜噜久久狠狠| 91麻豆国产免费观看| 亚洲乱人伦中文字幕无码| 亚洲色偷偷狠狠综合网| 亚洲免费在线播放| 色天使色婷婷在线影院亚洲| 亚洲精品无码久久久久sm| 无码国产精品一区二区免费式影视 | 国产又大又黑又粗免费视频| 亚洲AV美女一区二区三区| 四虎永久在线观看免费网站网址|