用AWT在系統(tǒng)托盤區(qū)創(chuàng)建一個托盤的方法

                  大家用過QQ吧?(呵呵,我這是廢話!)當你等錄成功后,你的任務(wù)欄的右下角就會出現(xiàn)一個小企鵝的圖標,它就是在系統(tǒng)托盤區(qū)的一個托盤。前幾天我做了一個QQ2006的個人設(shè)置的界面,大家給我提出了很多建設(shè)性的意見,我在這里由衷地感謝大家。今天我學(xué)習JDK1.6新特性的時候,偶然發(fā)現(xiàn)了JDK1.6中的java.awt.SystemTray,使用這個類就可以在系統(tǒng)托盤區(qū)創(chuàng)建一個托盤程序,我如獲至寶,我何不在我原來程序的基礎(chǔ)上在更進一步——為我的程序添加一個系統(tǒng)托盤呢!經(jīng)過我的試驗,呵呵,我的小企鵝終于出現(xiàn)了。

          我將http://www.aygfsteel.com/lzqdiy/archive/2007/05/07/115756.html的源程序中的QQ類中的main方法更改如下:

          public static void main(String[] args)
              
          {
                  
          try
                  
          {
                      
          if (SystemTray.isSupported())
                      
          {// 判斷當前平臺是否支持系統(tǒng)托盤
                          st = SystemTray.getSystemTray();
                          java.awt.Image image 
          = Toolkit.getDefaultToolkit().getImage(
                                  
          "qq.gif");//定義托盤圖標的圖片            
                          PopupMenu pm = new PopupMenu();//創(chuàng)建右鍵菜單
                          MenuItem changeUserMenu 
          = new MenuItem("更改用戶");
                          changeUserMenu.addActionListener(
          new ActionListener()
                          
          {
                              
          public void actionPerformed(ActionEvent e)
                              
          {
                                  System.out.println(
          "更改用戶!");
                              }

                          }
          );
                          MenuItem exitMenu 
          = new MenuItem("退出");
                          exitMenu.addActionListener(
          new ActionListener()
                          
          {
                              
          public void actionPerformed(ActionEvent e)
                              
          {
                                  System.exit(
          0);
                              }

                          }
          );
                          pm.add(changeUserMenu);
                          pm.add(exitMenu);

                          TrayIcon ti = new TrayIcon(image, "QQ 176870965", pm);
                          st.add(ti);
                      }


                      QQ window 
          = new QQ();
                      window.open();
                  }
           catch (Exception e)
                  
          {
                      e.printStackTrace();
                  }

              }
          當然還需要導(dǎo)入幾個相關(guān)的類
          import java.awt.MenuItem;
          import java.awt.PopupMenu;
          import java.awt.SystemTray;
          import java.awt.Toolkit;
          import java.awt.TrayIcon;
          import java.awt.event.ActionEvent;
          import java.awt.event.ActionListener;

          運行的效果:

          不好意思,我的企鵝圖片有點大,所以沒有顯示完全,請大家海涵。

          posted on 2007-05-13 09:23 我為J狂 閱讀(1768) 評論(4)  編輯  收藏 所屬分類: 圖形用戶界面

          評論

          # re: 用Java在系統(tǒng)托盤區(qū)創(chuàng)建一個托盤的方法 2007-05-13 17:19 Pande

          我用SWT的Display.getSystemTray()  回復(fù)  更多評論   

          # re: 用Java在系統(tǒng)托盤區(qū)創(chuàng)建一個托盤的方法 2007-05-14 10:37 BeanSoft

          JDK 1.4 可以使用 JDIC, Sun 的開源桌面整合框架. http://www.aygfsteel.com/beansoft/archive/2007/02/11/99290.html 這個 Swing 的就用的這個框架顯示的托盤.  回復(fù)  更多評論   

          # re: 用Java在系統(tǒng)托盤區(qū)創(chuàng)建一個托盤的方法 2007-05-14 14:14 交口稱贊

          還是swt好啊  回復(fù)  更多評論   

          # re: 用AWT在系統(tǒng)托盤區(qū)創(chuàng)建一個托盤的方法 2007-06-10 11:52 itkui

          awt、swing,swt實現(xiàn)靠邊隱藏如何實現(xiàn)呀?  回復(fù)  更多評論   

          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 通州市| 株洲县| 乌恰县| 龙岩市| 隆子县| 瓮安县| 安丘市| 西宁市| 康平县| 达孜县| 伽师县| 乌审旗| 马鞍山市| 云龙县| 宁化县| 政和县| 吴川市| 柳州市| 乡宁县| 南皮县| 万年县| 巨野县| 浦城县| 博湖县| 罗甸县| 上杭县| 沙河市| 洛南县| 荆门市| 岳普湖县| 门源| 景谷| 清远市| 宁阳县| 新绛县| 界首市| 昂仁县| 景宁| 抚州市| 宣恩县| 定西市|