私は、作成時にシステムトレイにアイコンを追加する単純なJavaSwingアプリに取り組んでいます。私がやろうとしているのは、このアイコンがユーザーによってシングルクリックされたとき(左クリックまたは右クリック)を検出することです。ポップアップメニューはありません。アイコンがクリックされたときにアプリを復元したいだけです。
これは私が使用しているコードです:
SystemTray tray = SystemTray.getSystemTray();
Image icon = toolkit.getImage("icon.png");
ActionListener listener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("click detected");
}
};
TrayIcon trayIcon = new TrayIcon(icon, "Test Program", null);
trayIcon.addActionListener(listener);
tray.add(trayIcon);
このプログラムを実行すると、シングルクリック(左または右)は効果がありませんが、ダブルクリックすると、コンソールに「クリックが検出されました」というメッセージが表示されます。
シングルクリックも検出するにはどうすればよいですか?これにはMouseListenerを使用する必要がありますか?(MouseListenersが問題を引き起こす可能性があると聞きましたが、ActionListenersの方が優れています)