我有一个TrayIcon,偶尔会通过displayMessage()显示弹出/气球消息。 TrayIcon本身有一个ActionListener可以正常工作。根据文档,至少在某些平台(例如Win 8)上,点击消息气泡本身会触发图标的监听器事件。
到目前为止一切顺利,但我想为
有这种优雅的方式吗?
我认为可能有一个ActionEvent的属性传递给ActionListener.actionPerformed(),它可以区分点击的两个来源,但是找不到。
有什么想法吗?该应用程序只能在Windows上运行,如果有帮助的话。
答案 0 :(得分:0)
每当我使用我的休息服务推送消息时,我有一种方法可以在系统托盘图标上的气球中显示消息。您可以向显示的消息添加动作侦听器,您可以使用该动作侦听器在actionperfomed方法中执行任何操作。
public void displayMessage(String psTitle, String psMessage, final MessageType poType){
moTrayIcon.displayMessage(psTitle, psMessage, poType);
moTrayIcon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
Desktop dst = Desktop.getDesktop();
String location = "D:\\dev";
dst.open(new File(location));
//location = "D:\\"; // again setting root location
} catch (Exception ex) {
LOGGER.error("------- error with folder opening double click "
+ ex.getMessage());
}
}
});
}