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.