2011-01-14 4 views
4
private void button_Clicked_download(MouseEvent e) { 
     button_dl.setEnabled(false); 
     System.out.println("Button Clicked."); 
} 

Wenn ich auf die Schaltfläche klicke, sieht die Schaltfläche deaktiviert aus. Die Schaltfläche führt jedoch immer noch den Code unter dem MouseEvent aus und ich sehe "Button Clicked". in der Debug-Konsole.Schaltfläche Ereignis funktioniert immer noch mit deaktivierter Schaltfläche

Wie kann ich es so machen, wenn die Schaltfläche angeklickt wird ignoriert es den Code und ist in der Tat deaktiviert?

+0

hinzugefügt "swing" tag –

Antwort

10

jedoch die Taste noch den Code unter dem Mouseevent führt und ich sehe „Button geklickt haben.“ in der Debug-Konsole.

Aus diesem Grund sollten Sie keinen MouseListener mit einem JButton, sondern einen ActionListener verwenden. Die Lösung ist natürlich offensichtlich - den MouseListener loszuwerden und stattdessen einen ActionListener zu dem JButton von Interesse hinzuzufügen.

+1

Danke. Ich habe den ActionListener vergessen. Ich habe es geändert und es funktioniert jetzt perfekt. Vielen Dank. =) – Kyle

+0

Sie sind herzlich willkommen! –

1

Sie müssen einen ActionListener anstelle von MouseClickListener verwenden.

Ihre Taste ist logisch angeklickt, auch wenn es so deaktiviert klicken Ereignis

1

Es ist eigentlich eine sehr einfache Möglichkeit, das Aktivieren und Deaktivieren einer Schaltfläche in Java ausgeführt wird, die eine Maus-Listener verwendet.

Ich habe Ihre Frage beim Versuch, etwas Ähnliches zu erstellen und so habe ich es gelöst. Alle MouseListener-Methoden geben void zurück, so dass es ganz gut funktioniert. In meiner Situation hätte der Rückgriff auf einen ActionListener viel zusätzlichen Aufwand erfordert, während ein MouseListener perfekt für den Job war. Drücken Sie eine Variable, die die Freigabe aufheben ließ und ein anderer Thread die Variable in einer laufenden Simulation verwendete.

Verwandte Themen