Estoy trabajando en una sencilla aplicación Java swing, que agrega un ícono a la bandeja del sistema cuando se crea. Lo que trato de hacer es detectar cuándo el usuario hace clic en un solo icono (ya sea haciendo clic con el botón izquierdo o haciendo clic con el botón derecho), no hay un menú emergente, solo quiero restaurar la aplicación cuando se hace clic en el icono.¿Cómo detectar clics individuales en la aplicación System TrayIcon for Java?
Este es el código que estoy usando:
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);
¿Qué pasa cuando ejecuta este programa, sin embargo, es que los clics individuales (ya sea izquierda o derecha) no tienen ningún efecto, pero cuando hago doble clic, a continuación, muestra el mensaje "clic detectado" en la consola.
¿Qué puedo hacer para que también se detecten los clics individuales? ¿Necesito usar un MouseListener para esto? (He oído que MouseListeners pueden causar problemas, y ActionListeners son mejores)
¿Qué plataforma? Windows? Linux? – Femi
@Femi Windows - –
solo 30k up_votes ???, +1 – mKorbel