Zudem werden Sie feststellen, daß das neue Modell eine Vielzahl von unterschiedlichen Möglichkeiten bietet, Ereignishandler zu implementieren. Diese sind je nach Anwendungsfall unterschiedlich gut oder schlecht geeignet, den jeweiligen Nachrichtenverkehr abzubilden. In diesem und im folgenden Kapitel werden die angegebenen Entwurfsmuster betrachtet:
Die Fensterklasse implementiert die erforderlichen EventListener-Interfaces, stellt die erforderlichen Callback-Methoden zur Verfügung und registriert sich selbst bei den Ereignisquellen.
In der Fensterklasse werden lokale oder anonyme Klassen definiert, die einen EventListener implementieren oder sich aus einer Adapterklasse ableiten (eine Adapterklasse implementiert ein Interface mit mehreren Methoden und erlaubt es somit abgeleiteten Klassen, nur noch die Methoden zu überlagern, die tatsächlich von Interesse sind).
GUI-Code und Ereignisbehandlung werden vollkommen getrennt und auf unterschiedliche Klassen verteilt.
In der Komponentenklasse werden die Methoden überlagert, die für das Empfangen und Verteilen der Nachrichten erforderlich sind.
Jede dieser Varianten wird in den nachfolgenden Abschnitten erläutert und ihre jeweiligen Einsatzmöglichkeiten anhand eines Beispiels aufgezeigt. Zunächst sollen jedoch die verschieden Ereignistypen sowie die Ereignisempfänger und Ereignisquellen näher beleuchtet werden. Die Begriffe Ereignis, Nachricht und Event werden dazu in diesem Kapitel gleichbedeutend (=synonym) verwendet.