IV. Event-Handling
Das GUI-Framework JControl/Vole stellt Mechanismen zur Nachrichten-basierten Ereignisbehandlung zur Verfügung, die von allen interaktiven Komponenten verwendet werden. Programmierer von Anwendungen auf der Basis von JControl/Vole 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/Vole
Bild 1 skizziert das Prinzip der Nachrichtenübermittlung bei JControl/Vole: Eine Nachrichtenschleife, die als Thread im Hintergrund arbeitet, wird von der Klasse Frame
automatisch installiert. Diese Schleife fragt kontinuierlich die Tastatur ab und löst ein KeyEvent
aus, wenn eine Taste gedrückt wird. Das KeyEvent
wird an das Container
-Framework der Benutzeroberfläche übermittelt, welches nun herausfinden muss, welcher GUI-Komponente das KeyEvent
zugeordnet werden muss. Letztendlich erreicht das Event diejenige GUI-Komponente, die momentan den Eingabefokus besitzt, und wird dort in ein ActionEvent
umgewandelt.
Nur wenn das Anwendungsprogramm einen ActionListener
auf die GUI-Komponente installiert hat (durch Aufruf der Methode {Komponente}.
setActionListener(ActionListener listener)
), kann dieses auch ein ActionEvent
auslösen. Dann wird die Methode onActionEvent(ActionEvent event)
des entsprechenden ActionListeners
aufgerufen und das Anwendungsprogramm kann auf die Nachrichten dieser GUI-Komponente reagieren.