5

我有一个 Java 应用程序,当按下红十字时,它会缩小到系统托盘中。

每当发生这种情况时,我都会显示一条消息,通知用户该应用程序仍在系统托盘中运行。

这是代码:

...

    @Override
    public void windowClosing(WindowEvent e) {
       try {
            tray.add(trayIcon);
            trayIcon.displayMessage("", "The application has been reduced
                 in the system tray, to stop it, press the \"Quit\" button", 
                 TrayIcon.MessageType.WARNING);
            setVisible(false);
        } catch (AWTException ex) {
            System.out.println("unable to add to tray");
        }
    }
...

目前,如果用户单击该消息,该消息就会消失。

我想设置一个计数器,这样即使什么都没做,消息也会在几秒钟后消失。

有谁知道这样做的好方法,因为我似乎找不到任何现有的方法。

编辑

我必须纠正我的问题,事实上,在测试了一段时间后,它会自动淡出,比如说 7-8 秒,但我觉得它有点太长了。此外,仅当用户正在执行操作(移动鼠标或在键盘上打字)时它才会消失

所以新的问题是:有没有办法通过配置 Java 应用程序来减少淡出时间并改变消息行为,还是 Windows 固有的?

4

1 回答 1

3

所以新的问题是:有没有办法通过配置 Java 应用程序来减少淡出时间,还是 Windows 固有的?

  • MSDN 部分说明通知多长时间-在 Windows Vista 及更高版本中,通知显示的固定持续时间为 9 秒。

  • 任何更改都可以仅在 Windows 大小上维护,但似乎对所有消息都有效/适用


  • 您可以创建自己的 Traslucent JDialog(透明度也可以)以编程方式放置在左下角,将从 Swing Timer 调用淡出
于 2013-04-19T11:23:36.970 回答