当使用 TrayIcon.displayMessage 显示弹出通知时,Java 6 文档指出“单击消息可能会触发 ActionEvent”。
'可能'?谢谢,文档。
在我的 Windows 2000 测试 VM 上,单击消息似乎不会触发 ActionEvent(不幸的是,我没有任何更新的 Windows 许可证来测试),而相同的代码在 Ubuntu 和 OS X 中会触发一个。
注意:单击图标本身会触发鼠标侦听器上的事件。
所以无论如何,我的具体问题是:
我是否正确单击通知不会触发 Windows 2000 中的 ActionEvent,或者我做错了什么?
在 Windows XP 或 Windows 7 中触发 ActionEvent 是否有效?
最小的示例代码如下。当我java Test
在 Windows 2000 中运行它时,单击通知不会生成任何命令行输出。
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.SwingUtilities;
public class Test
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
TrayIcon icon = new TrayIcon(
new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB));
icon.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
System.err.println("ActionEvent: " + arg0);
}
});
try
{
SystemTray.getSystemTray().add(icon);
}
catch(AWTException e)
{
e.printStackTrace();
}
icon.displayMessage("New message", "Can you click on this?",
TrayIcon.MessageType.INFO);
}
});
}
}