TrayIcon.displayMessage を使用してポップアップ通知を表示する場合、Java 6 のドキュメントには、「メッセージをクリックすると ActionEvent がトリガーされる可能性がある」と記載されています。
'5月'?ありがとう、ドキュメント。
私の Windows 2000 テスト VM では、メッセージをクリックしても ActionEvent がトリガーされないように見えます (残念ながら、テストするための新しい Windows ライセンスを所有していません) が、Ubuntu と OS X では同じコードでトリガーされます。
注: アイコン自体をクリックすると、マウス リスナーでイベントがトリガーされます。
とにかく、私の具体的な質問は次のとおりです。
Windows 2000 では、通知をクリックしても ActionEvent がトリガーされないというのは正しいですか、それとも間違っていますか?
Windows XP または Windows 7 で ActionEvent をトリガーすることはできますか?
最小限のサンプル コードを以下に示します。Windows 2000 でこれを実行java Test
すると、通知をクリックしてもコマンド ライン出力が生成されません。
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);
}
});
}
}