9.3.2 | Verarbeitung eines Ereignisses |
Die Verarbeitung eines Ereignisses läuft im Allgemeinen in folgenden Schritten ab:Da die Implementierung der processXXXEvent()-Methoden auf Vererbung beruht, sollte man nach der Reaktion auf ein Ereignis die entsprechende Methode der übergeordneten Klasse aufrufen, da sonst die registrierten Listener nicht mehr bedient werden. Das liegt daran, dass die Benachrichtigung der Listener von einem bestimmten Ereignis jeweils in der vorimplementierten Methode processXXXEvent() vorgenommen wird. Wird nun diese Methode beim Ableiten einer Komponente überschrieben, so wird zunächst die eigene processXXXEvent()-Methode aufgerufen. Ruft man nun aus dieser Methode nicht explizit die ursprüngliche Methode auf, so wird die Weiterleitung von Ereignissen blockiert.
- Zunächst werden alle Ereignisse an die Methode processEvent(AWTEvent) derjenigen Komponente geschickt, in der das Ereignis ausgelöst wurde.
- Dort wird anschließend geprüft, um welche Art von Ereignis es sich handelt, und die entsprechende processXXXEvent()-Methode aufgerufen. Dort hat der Programmierer nun die Möglichkeit, nur für die eigene Komponente Aktionen durchzuführen.
- Anschließend wird das Ereignis an alle Komponenten weitergeleitet, die sich als Listener für dieses Ereignis registriert haben.
Folgende Methode enthält eine Beispiel-Implementierung für ein ActionEvent:public void processActionEvent(ActionEvent e) { System.out.println(e.getActionCommand()); super.processActionEvent(e); }