CONMISANMA的正確答案——JAVA添加托盤圖標並【彈出提示】

java的SystemTray跳出提示的代碼?就像xp的網絡連接那樣,連接成功會彈出一個網絡已連接

 

測試JDK:1.8

測試系統:WIN2003

 

import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
 
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
 
public class SystemTrayDemo
{
   public static void main(String[] args)
   {
      // 判斷是否支持系統托盤
      if (SystemTray.isSupported())
      {
         // 獲取圖片所在的URL
         URL url = SystemTrayDemo.class.getResource("console.png");
         // 實例化圖像對象
         ImageIcon icon = new ImageIcon(url);
         // 獲得Image對象
         Image image = icon.getImage();
         // 創建托盤圖標
         TrayIcon trayIcon = new TrayIcon(image);
         // 爲托盤添加鼠標適配器
         trayIcon.addMouseListener(new MouseAdapter()
         {
            // 鼠標事件
            public void mouseClicked(MouseEvent e)
            {
               // 判斷是否雙擊了鼠標
               if (e.getClickCount() == 2)
               {
                  JOptionPane.showMessageDialog(null, "SystemTrayDemo");
               }
            }
         });
         // 添加工具提示文本
         trayIcon.setToolTip("本地連接\r\n速度:100.0 Mbps\r\n狀態:已連接上");
         // 創建彈出菜單
         PopupMenu popupMenu = new PopupMenu();
         popupMenu.add(new MenuItem("禁用(D)"));
         popupMenu.add(new MenuItem("狀態(S)"));
         popupMenu.add(new MenuItem("修復(P)"));
         popupMenu.addSeparator();
         popupMenu.add(new MenuItem("更改 Windows 防火牆設置(C)"));
         popupMenu.addSeparator();
         popupMenu.add(new MenuItem("打開網絡連接(O)"));
 
         // 爲托盤圖標加彈出菜彈
         trayIcon.setPopupMenu(popupMenu);
         // 獲得系統托盤對象
         SystemTray systemTray = SystemTray.getSystemTray();
         try
         {
            // 爲系統托盤加托盤圖標
            systemTray.add(trayIcon);

            // 必須放在添加托盤圖標的後面
            // 否則加載進系統托盤之前就已經彈出了(以隱藏的方式運行了)
            //
            // 彈出消息
            trayIcon.displayMessage("Tray Demo", "Hello World!", MessageType.INFO);
         }
         catch (Exception e)
         {
            e.printStackTrace();
         }
      }
      else
      {
         JOptionPane.showMessageDialog(null, "not support");
      }
   }
}
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章