给SWING程序添加系统托盘图标需要用到两个主要的类:SystemTray和TrayIcon
SystemTray 通常用于判断系统是否支持托盘图标和添加系统图标功能;
TrayIcon 用来创建一个图标,然后需要使用SystemTray将add进去;
if (SystemTray.isSupported()) {// 判断系统是否托盘 TrayIcon icon = new TrayIcon(Toolkit.getDefaultToolkit() .createImage("./images/img.png"));// 创建一个托盘图标对象 PopupMenu menu = new PopupMenu();// 创建弹出菜单 MenuItem item = new MenuItem("退出");// 创建一个菜单项 item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); menu.add(item);// 将菜单项添加到菜单列表 icon.setPopupMenu(menu);// 将菜单添加到托盘图标 SystemTray tray = SystemTray.getSystemTray();// 获取系统托盘 tray.add(icon);// 将托盘图表添加到系统托盘 }
如果需要添加托盘图标闪烁效果,只需调用TrayIcon.setImage(Image image)动态替换托盘图标即可,如下:
Toolkit tk = Toolkit.getDefaultToolkit();
TrayIcon icon = new TrayIcon(tk.createImage("./images/bee.png"));
for(int i=0;i<10;i++){
icon.setImage(tk.createImage(""));
Thread.sleep(200);
icon.setImage(tk.createImage("./images/bee.png"));
Thread.sleep(200);
}