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());