vjame

          優化代碼是無止境的
          隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0

          導航

          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          公告

          子曰:“學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知,而不慍,不亦君子乎?”

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章檔案

          積分與排名

          • 積分 - 73768
          • 排名 - 754

          最新評論

          閱讀排行榜

          SWT系統托盤

          SWT中使用Tray和TrayItem這兩個類來創建系統托盤和系統托盤項。
            //為該系統托盤項注冊事件
            item.addListener( SWT.Show, listner ); //系統托盤顯示
            item.addListener( SWT.Hide , listner );//系統托盤隱藏
            item.addListener( SWT.Selection , listner );//系統托盤單擊選中
            item.addListener( SWT.DefaultSelection , listner );//系統托盤雙擊選中
            item.addListener( SWT.MenuDetect , listner );//系統托盤右擊事件

          package com.strongit.bridge.mainframe;

          import org.eclipse.swt.SWT;
          import org.eclipse.swt.events.SelectionAdapter;
          import org.eclipse.swt.events.SelectionEvent;
          import org.eclipse.swt.widgets.Display;
          import org.eclipse.swt.widgets.Event;
          import org.eclipse.swt.widgets.Listener;
          import org.eclipse.swt.widgets.Menu;
          import org.eclipse.swt.widgets.MenuItem;
          import org.eclipse.swt.widgets.Shell;
          import org.eclipse.swt.widgets.Tray;
          import org.eclipse.swt.widgets.TrayItem;


          import com.strongit.bridge.common.filepath.FilePath;
          import com.strongit.bridge.common.swtdesigner.SWTResourceManager;
          import com.strongit.bridge.common.util.ImageFactory;



          public class TraySample {

              
          public static void main(String[] args) {
                  Display display 
          = new Display();
                  
          final Shell shell = new Shell(display);
                  
          // 創建系統托盤
                  final Tray tray = display.getSystemTray();
                  
          // 如果系統不支持托盤部件
                  if (tray == null) {
                      System.out.println(
          "該系統不支持系統托盤");
                      
          return;
                  }
                  
          final Menu trayMenu = createTrayMenu(display, shell);
                  
          // 創建系統托盤的工作項
                  final TrayItem item = new TrayItem(tray, SWT.NONE);
                  item.setToolTipText(
          "這是一個TrayItem");
                  
          //設置顯示系統托盤項的圖標,顯示在桌面的右下角
                  item.setImage(SWTResourceManager.getImage(TraySample.class,
                          FilePath.IMAGE_PATH 
          +ImageFactory.SAMPLES));
                  
          //集中處理事件
                  Listener listner = new Listener(){

                      
          public void handleEvent(Event event) {
                          
                          
          if ( event.type==SWT.Show )//當顯示系統托盤時
                              System.out.println("顯示");
                          
          else if ( event.type==SWT.Hide )//當隱藏系統托盤時
                              System.out.println("隱藏");
                          
          else if  ( event.type==SWT.Selection )//當單擊系統托盤時
                              System.out.println("選中");
                          
          else if ( event.type==SWT.DefaultSelection )//當雙擊系統托盤時
                              System.out.println("默認選中");
                          
          else if ( event.type==SWT.MenuDetect )//當右擊系統托盤時
                              trayMenu.setVisible(true);//設置菜單為顯示狀態
                      }
                      
                  };
                  
          //為該系統托盤項注冊事件
                  item.addListener( SWT.Show, listner );
                  item.addListener( SWT.Hide , listner );
                  item.addListener( SWT.Selection , listner );
                  item.addListener( SWT.DefaultSelection , listner );
                  item.addListener( SWT.MenuDetect , listner );
                  shell.pack();
                  shell.open();
                  
          while (!shell.isDisposed()) {
                      
          if (!display.readAndDispatch())
                          display.sleep();
                  }
                  ImageFactory.dispose();
                  display.dispose();

              }

              
          private static Menu createTrayMenu(Display display, final Shell shell) {
                  
          // 定義一個彈出式菜單,使用常量SWT.POP_UP
                  final Menu trayMenu = new Menu(shell, SWT.POP_UP);
                  
          // 定義菜單中的菜單項
                  MenuItem welcomeItem = new MenuItem(trayMenu, SWT.PUSH);
                  welcomeItem.setText(
          "歡迎");
                  welcomeItem.setImage(SWTResourceManager.getImage(TraySample.
          class,
                          FilePath.IMAGE_PATH 
          +ImageFactory.ECLIPSE));

                  
          new MenuItem(trayMenu, SWT.SEPARATOR);

                  MenuItem updatetem 
          = new MenuItem(trayMenu, SWT.PUSH);
                  updatetem.setText(
          "在線更新");
                  updatetem.addSelectionListener(
          new SelectionAdapter() {
                      
          public void widgetSelected(SelectionEvent arg0) {
                          System.exit(
          -1);
                          ImageFactory.dispose();
                      }
                  });

                  MenuItem aboutItem 
          = new MenuItem(trayMenu, SWT.PUSH);
                  aboutItem.setText(
          "關于我們");
                  aboutItem.setImage(SWTResourceManager.getImage(TraySample.
          class,
                          FilePath.IMAGE_PATH 
          +ImageFactory.SAMPLES));

                  trayMenu.setDefaultItem(welcomeItem);
                  
          return trayMenu;
              }

          }

          posted on 2009-01-16 20:34 lanjh 閱讀(501) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 清镇市| 驻马店市| 石景山区| 云阳县| 秦皇岛市| 延边| 玉山县| 集安市| 图木舒克市| 琼中| 徐汇区| 泸定县| 大同市| 昔阳县| 望江县| 蒙阴县| 句容市| 丹阳市| 乐平市| 金湖县| 富阳市| 江源县| 靖宇县| 柞水县| 桂阳县| 调兵山市| 五寨县| 麻栗坡县| 桃源县| 镇赉县| 德江县| 调兵山市| 东莞市| 望江县| 梅州市| 天水市| 营山县| 布尔津县| 余干县| 当涂县| 长丰县|