第二十七篇:JAVA添加托盘图标和托盘弹出式菜单

来源:互联网 发布:spring webmvc源码下载 编辑:程序博客网 时间:2024/06/03 21:01

很多程序在运行的过程中会在系统的托盘区域添加托盘图标,方便用户快捷操作,如QQ等,在JDK1.6及其以后的版本中,Java也提供了对系统托盘图标的支持。 
我们以系统上的网络连接托盘图标为例,首先,我们也准备一张托盘图标,建议分辨率:16*16,支持jpg、gif、png等格式,不支持ico格式的,这是需要注意的。 
这里写图片描述

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("networking.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");      }   }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72

运行结果:

这里写图片描述

这里写图片描述

原创粉丝点击