Java的SystemTray类的使用方法
JDK1.6版增加了java.awt.SystemTray类,该类表示桌面的系统托盘,这对大多数系统托盘应用已经足够。如果这个类还是不能满足您的需求,可以试一试JDIC (JDesktop Integration Components)。
JDK1.6的API文档,给出了这个类的用法。有人愿意把创建系统托盘的代码直接放在主应用代码中,笔者更倾向于把创建系统托盘的责任分派给一个单独的类,这符合类的设计原则。在主应用中直接调用该类的工厂方法就可以了,结构清晰,便于维护,改动或增加系统托盘的功能,不必改动主应用代码。
创建系统托盘的类(TrayFactory.java)的代码如下:
//package com.jnmc.liang.systemtray;
import java.awt.*;
import java.awt.event.*;
public class TrayFactory {
private TrayIcon trayIcon = null;
private Component comp = null;
private String trayImageName = null;
private String tooltip = null;
private TrayFactory(Component comp, String trayImageName, String tooltip) {
this.comp = comp;
this.trayImageName = trayImageName;
this.tooltip = tooltip;
init();
}
private void init() {
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage(trayImageName);
PopupMenu popupMenu = new PopupMenu();
MenuItem restoreItem = new MenuItem("还原");
MenuItem exitItem = new MenuItem("退出");
restoreItem.addActionListener(new RestoreItemActionListener());