Я работаю над простым приложением Java swing, которое добавляет значок в системный трей при его создании. То, что я пытаюсь сделать, - это обнаружить, когда пользователь нажимает этот значок одним щелчком мыши или щелчком правой кнопки мыши. Во всплывающем меню нет всплывающего меню, я просто хочу, чтобы приложение было восстановлено при щелчке по значку.Как обнаружить одиночные клики в System TrayIcon для Java-приложения?
Это код, я использую:
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 лучше)
Какая платформа? Окна? Linux? – Femi
@Femi Windows - –
только 30k up_votes ???, +1 – mKorbel