15.33 Ereignisverarbeitung auf unterster Ebene  Der Benutzer erzeugt bei seiner Arbeit mit der Oberfläche Ereignisse. Diese werden entweder von den Peer-Objekten oder von Klassen der Applikation erzeugt. Bevor sie vom eigenen Programm bearbeitet werden, gelangen sie in eine Ereignisschlange (engl. event queue). Eine Event Queue ist einzigartig für eine JVM. Diese Schlange ist für Programmierer zugänglich und in einer plattformunabhängigen Klasse EventQueue implementiert. Elemente der Klasse sind Objekte vom Typ AWTEvent.
Eigene Ereignisse in die Queue setzen
Es ist ohne großen Umweg möglich, eigene Ereignisse zu erzeugen und in der EventQueue zu platzieren. Damit lassen sich beispielsweise Eingaben des Benutzers emulieren. Da alle Ereignisse von Komponenten von AWTElement erben, lässt sich ein ActionEvent erzeugen, welches dann wiederum von einem interessierten Listener entgegengenommen wird. Jetzt fehlt uns nur noch eine Funktion, die Ereignisse in die Schlange setzt. Dazu bietet die Klasse EventQueue die Methode postEvent(). Im Beispiel sehen wir die notwendigen Aufrufe, um beginnend vom Toolkit an die SystemEventQueue zu kommen:
Toolkit.getDefaultToolkit().getSystemEventQueue().
postEvent(
new ActionEvent( /* Object source, int id, String command */ )
);
|
final EventQueue getSystemEventQueue()
Liefert ein Exemplar der EventQueue für eine Applikation oder ein Applet. Eine Security Exception wird ausgeworfen, falls der Security-Manager den Zugriff auf EventQueue verbietet. |

Hier klicken, um das Bild zu Vergrößern
|
void postEvent( AWTEvent theEvent )
Legt ein Ereignis in die EventQueue. Danach werden vorhandene EventQueueListeners und notifyEventQueueListeners aufgerufen. |
|