Ich arbeite an einer einfachen Java-Swing-App, die beim Erstellen ein Symbol zur Systemablage hinzufügt. Was ich versuche zu tun, ist zu erkennen, wenn dieses Symbol einzeln vom Benutzer angeklickt wird (ob durch Linksklick oder Rechtsklick). Es gibt kein Popup-Menü. Ich möchte nur, dass die App wiederhergestellt wird, wenn auf das Symbol geklickt wird.Wie erkennen Sie einzelne Klicks auf System TrayIcon für Java App?
Dies ist der Code Ich verwende:
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);
Was, wenn ich aber laufen dieses Programm passiert, ist, dass einzelne Klicks (links oder rechts) keine Wirkung haben, aber wenn ich Doppelklick, dann Es zeigt die Meldung "Klick erkannt" in der Konsole.
Was kann ich tun, damit auch einzelne Klicks erkannt werden? Muss ich dafür einen MouseListener verwenden? (Ich habe gehört, dass MouseListeners Probleme verursachen können, und ActionListeners sind besser)
Welche Plattform? Windows? Linux? – Femi
@Femi Windows - –
nur 30k up_votes ???, +1 – mKorbel