Java Swing TrayIcon 气球消息 - 实现与主图标不同的 Action 监听器?

标签 java swing notifications trayicon

我有一个 TrayIcon,它偶尔会通过 displayMessage() 显示弹出/气球消息。 TrayIcon 本身有一个 ActionListener 可以正常工作。根据文档,至少在某些平台(例如 Win 8)上,单击消息气泡本身会触发图标的监听器事件。
到目前为止一切顺利,但我想为

实现单独的行为
  1. 用户单击系统托盘中的图标本身
  2. 用户点击消息气泡(在本例中,不执行任何操作)

有没有一种优雅的方式来做到这一点?
我认为 ActionEvent 可能有一个属性传递给 ActionListener.actionPerformed() ,它可以区分两个点击来源,但找不到一个。

有什么想法吗?如果有帮助的话,该应用程序只能在 Windows 上运行。

最佳答案

每当我使用休息服务推送消息时,我有一种方法可以在系统托盘图标上的气球中显示消息。您可以将操作监听器添加到显示的消息中,您可以使用它在 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());
            }

        }
    });

}

关于Java Swing TrayIcon 气球消息 - 实现与主图标不同的 Action 监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30072742/

相关文章:

Java如何在鼠标单击时绘制矩形

java - 导入迁移布局。

javascript - 如何在重定向到另一个页面后显示 react 通知?

java - 就地快速排序问题

java - 通过 Web 应用程序连接两个调用

Java 资源尝试卡住

java - 如何触发 Tab 键事件?

python - 多个 WindowsBaloonTip/TrayTip 通知?

c# - 如何根据任务栏系统托盘图标的位置设置通知自定义表单的位置位于正上方或正下方?

Java 骰子模拟