Sto lavorando a una semplice app Java swing, che aggiunge un'icona alla barra delle applicazioni quando viene creata. Quello che sto cercando di fare è rilevare quando questa icona è cliccata dall'utente (sia con il tasto sinistro o con il tasto destro del mouse), Non c'è un menu popup, voglio solo che l'app venga ripristinata quando si fa clic sull'icona.Come rilevare singoli clic su System TrayIcon per l'app Java?
Questo è il codice che sto utilizzando:
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);
Cosa succede quando si esegue questo programma, però, è che i clic singoli (a destra oa sinistra) non hanno alcun effetto, ma quando faccio doppio clic, quindi mostra il messaggio "clic rilevato" nella console.
Cosa posso fare per rilevare anche i singoli clic? Devo usare un MouseListener per questo? (Ho sentito dire che MouseListeners possono causare problemi, e ActionListeners sono migliori)
Quale piattaforma? Finestre? Linux? – Femi
@Femi Windows - –
solo 30k up_votes ???, +1 – mKorbel