Java的SystemTray類的使用方法
JDK1.6版增加了java.awt.SystemTray類,該類表示桌面的系統(tǒng)托盤,這對大多數(shù)系統(tǒng)托盤應(yīng)用已經(jīng)足夠。如果這個類還是不能滿足您的需求,可以試一試JDIC (JDesktop Integration Components)。
JDK1.6的API文檔,給出了這個類的用法。有人愿意把創(chuàng)建系統(tǒng)托盤的代碼直接放在主應(yīng)用代碼中,筆者更傾向于把創(chuàng)建系統(tǒng)托盤的責(zé)任分派給一個單獨的類,這符合類的設(shè)計原則。在主應(yīng)用中直接調(diào)用該類的工廠方法就可以了,結(jié)構(gòu)清晰,便于維護,改動或增加系統(tǒng)托盤的功能,不必改動主應(yīng)用代碼。
創(chuàng)建系統(tǒng)托盤的類(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());