Ich bin ein Student und wir haben gerade angefangen, Grafiken zu erstellen. Ich habe zwei Zuweisungen mit actionListener gemacht. In beiden Zuweisungen haben meine Konstrukteure diesen Code:Verwenden von actionListener
JButton.setActionListener(this) ;
Also hier meine Frage ist, was passieren würde, wenn ich eine andere Klasse verwendet, anstelle des „dieses“ Stichwort?
ex
JButton.setActionListener(someClass) ;
Das würde von vielen Dingen abhängen. Zuerst müssten beide Klassen "ActionListener" implementieren. Wenn Sie eine andere Klasse verwenden, würden Sie den Verweis auf die Klasse verlieren, in der die Schaltfläche definiert ist (obwohl Sie über die Methode "ActionEvent # getSource" immer noch einen Verweis darauf erhalten können, bedeutet dies, dass Sie auf keine Klasse zugreifen können der Instanzfelder/Methoden der definierenden Klasse) – MadProgrammer
Es wäre auch sehr empfehlenswert, einen Blick auf [Verwendung von Schaltflächen, Kontrollkästchen und Optionsfeldern] (http://docs.oracle.com/javase/tutorial/uiswing) zu werfen /components/button.html) und [Wie schreibe ich eine Aktion Listener] (http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html) – MadProgrammer
Grundsätzlich machen Sie es richtig. 'this' wird häufig in kurzen Beispielen verwendet, da Sie einer vorhandenen Klasse eine Methode hinzufügen können und der Code weniger Platz benötigt. Normalerweise möchten Sie Klassen nicht so wiederverwenden, Sie möchten Probleme trennen, also sollten Sie eine andere Klasse als Ihren Aktionslistener haben. – markspace