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.