CONMISANMA的正確答案——JAVA添加托盤圖標和托盤彈出式菜單【仿WINDOWS網絡連接】

轉載自:JAVA添加托盤圖標和托盤彈出式菜單

 

測試JDK:1.8

測試系統:WIN2016

 

如果要引用MAIN包目錄下的圖片,類名.class.getResource("圖片.png");

 

最好是16*16的圖片,直接修改後綴是無法使用的!!

最好是16*16的圖片,直接修改後綴是無法使用的!!

最好是16*16的圖片,直接修改後綴是無法使用的!!

 

我使用的是系統的console.png圖標,所以顯示正常,其他的一般都是直接修改後綴造成的,再其次是像素問題。

 

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);
         }
         catch (Exception e)
         {
            e.printStackTrace();
         }
      }
      else
      {
         JOptionPane.showMessageDialog(null, "not support");
      }
   }
}

 

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