我以displayMessage()
这种方式使我的可点击(感谢stackoverflow!):
public class Tray {
private static class ShowMessageListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (openBrowser == 1) {
Desktop desktop = Desktop.isDesktopSupported() ? Desktop
.getDesktop() : null;
if (desktop != null
&& desktop.isSupported(Desktop.Action.BROWSE)) {
try {
desktop.browse(URI.create(link));
} catch (Exception e2) {
LogError.get(e2);
}
}
}
openBrowser = 0;
}
});
trayIcon.displayMessage("Finished", link,
TrayIcon.MessageType.INFO);
}
} //ShowMessageListener class end
invisibleItem.addActionListener(new ShowMessageListener());
}
我正在调度事件以显示消息:
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new ActionEvent(Tray.invisibleItem, ActionEvent.ACTION_PERFORMED, "asd", 1, 0));
一切都很好,消息是可点击的。它是完美的,直到我意识到那ActionListener
也是在听TrayIcon
。如果用户没有点击消息,TrayIcon
将在下一次点击时获取事件并打开网站。
这是我的问题:如何检查是否displayMessage()
消失了?