Event Listener, Action Listener

moskito08

Alkmene
Registriert
24.03.06
Beiträge
34
Hallo!
Ich muss mal wieder mit Java nerven. Diesmal geht es mehr um die Theorie.
Die Fragestellungen sind alte Klausur-Aufgaben. Ich hab mich schon darüber hergemacht, aber trotz einschlägiger Literatur, noch keine zufriedenstellende Antwort gefunden. Wer weis es besser?o_O

Frage: Wozu dient der Event Listener in Zusammenhang mit graf. Oberflächen bei der Programmierung von Applets?

Meine Antwort: Stellt Klassen zur Verfügung. Die dienen der Ereignisbehandlung, z.B. Tastaturereignisse, Mausereignisse.


Frage: Wozu dient die Ereignissteuerung bei graf. Oberflächen in Java?
Welche Aufgabe hat der Action Listener?


Meine Antwort: Stellt Klassen zur Verfügung. Die dienen der Ereignisbehandlung, z.B. Tastaturereignisse, Mausereignisse.
Action Listener: Vereinbarung, wann das jeweilige Ereignis ausgelöst wird.


Ist das ansatzweise richtig?
Danke für Verbesserungsvorschläge!!
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
uhm, offen gesagt würdest du damit bei mir nicht allzu viele punkte kriege.

weder eventListener noch actionListener stellen klassen zur verfügung. vielmehr lassen sich klassen mit den interfaces so auszeichnen, dass sie auf events hören, seien es nun events einer direkten benutzereingabe, indirekte userevents (zB eine veränderte auswahl in einer liste) oder Systemevents.
Wenn sich beispielsweise die Auswahl einer Liste verändert, ist dies eine Action. Die Liste ruft nun bei sämtlichen bei ihr (mittels addActionListener) registrierten ActionListeners die Methode actionPerformed auf, in der du nun beim ursprünglichen Objekt auf die neue Auswahl reagieren kannst.

Listeners sind ein zentrales Element in Javas MVC-Pattern.
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
um noch schnell deutlicher zu machen was ich meinte: wichtig ist, dass die Listener keine Klassen zur Verfügung stellen, sondern dass man damit irgendwelche Objekte dazu bringen kann, auf ein (GUI)-Event zu reagieren und man nicht etwa programmlogik ins GUI reinprogrammieren muss als wäre man in VBscript. Einfach das Listener-Interface implementieren, sich beim zu überwachenden GUI-Elemente als listener eintragen und dann zB in der actionperformed-methode auf events reagieren...
 

moskito08

Alkmene
Registriert
24.03.06
Beiträge
34
Danke für die Antwort!
Der Unterschied zwischen dem Action Listener und Event Listener ist mir leider immer noch nicht genau klar. Gibt es keine eindeutige kurze Definition dafür, kann leider in meinen Büchern, noch im Web etwas finden!:(
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/ActionListener.html

ActionListener erbt von EventListener. EventListener ist _extrem_ allgemein und definiert genau nichts, das dazugehörige EventObject kennt nur sein sourceObject.
Von EventListener erben u.a. der MouseListener, WindowListener oder eben der ActionListener.
ActionListener wird von verschiedenen Dingen implementiert - bedeutend ist ActionListener vor allem, weil man es extrem häufig braucht, um einen Controller auf indirekte BenutzerEvents reagieren zu lassen - eben zB die Auswahl in einer Liste etc. Das willst du schliesslich nicht direkt über den MouseListener machen, denn dann müsstest du ja erst bestimmen, ob sich die Maus überhaupt über der Liste befand, ob welchem Punkt in der Liste die xy-Koordinaten der Maus entsprechen etc. etc.
 

moskito08

Alkmene
Registriert
24.03.06
Beiträge
34
Das verstehe ich! Kannst du mir noch ein paar Worte zur Ereignissteuerung sagen?
Oder ist das einfach nur ein Synonym?
Danke!
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
der begriff sagt mir jetzt als solcher mal so ziemlich nichts. ich nehme mal an, dass das einfach der ausdruck des dozenten fürs eventhandling ist, also wie man in java reaktionen auf äussere und interne events erstellt.
macht rein sprachlich am meisten sinn für mich...