IV. Event-Handling

Das GUI-Framework JControl/Wombat stellt Mechanismen zur Nachrichten-basierten Ereignisbehandlung zur Verfügung, die von allen interaktiven Komponenten verwendet werden. Programmierer von Anwendungen auf der Basis von JControl/Wombat müssen lediglich einen ActionListener implementieren, um auf Benutzereingaben reagieren zu können. Wie ein ActionListener auf eine bestimmte GUI-Komponente installiert und seine ActionEvents verarbeitet werden, wird in den folgenden Abschnitten gezeigt.

Bild 1: Event-Handling bei JControl/Wombat

Bild 1 skizziert das Prinzip der Nachrichtenübermittlung bei JControl/Wombat: Eine Nachrichtenschleife, die als Thread im Hintergrund arbeitet, wird von der Klasse Frame automatisch installiert. Diese Schleife fragt kontinuierlich die Tastatur und den Touch-Screen ab und ggf. ein KeyEvent, bzw. ein TouchEvent aus, wenn vom Benutzer eine Eingabe getätigt wird. Das Event wird an das Container-Framework der Benutzeroberfläche übermittelt, welches nun herausfinden muss, welcher GUI-Komponente es zugeordnet werden muss. Dies geschieht je nach Event-Typ über die Position der GUI-Komponente (TouchEvent) oder über den Eingabefokus (KeyEvent). Die ermittelte GUI-Komponente reagiert nun auf die Eingabe und erzeugt ggf. ein ActionEvent.

Hat das Anwendungsprogramm über die Methode setActionListener(ActionListener listener) einen ActionListener an die entsprechende GUI-Komponente angeschlossen, kann sie auf dieses reagieren. Dazu wird von JControl/Wombat beim Auftreten eines ActionEvents die Methode onActionEvent(ActionEvent event) aufgerufen. In deren Implementierung kann nun eine anwendungsspezifische Aktion ausgeführt werden.