next up previous contents
Nächste Seite: Focus Listener Aufwärts: Die Listener Vorherige Seite: Mouse Listener   Inhalt


Key Listener

Ein Keylistener überwacht die Tastatur auf eine Eingabe durch den Benutzer. Wiederum kann an jedes graphische Objekt ein Keylistener gebunden werden, der dann einen Event meldet, wenn innerhalb dieses Objektes eine Taste gedrückt wird. Über zwei weitere Funktionen kann dann der Keycode der Taste oder der entsprechende ASCII Code abgefragt werden. Das folgende Beispiel demonstriert die Funktionsweise:


    /* Example keylistener.c */

    :
    keylst=j_keylistener(frame);

    while((obj=j_nextaction())!=frame)
    {
        if(obj == keylst)
        {
            sprintf(str,"Keycode:%d  Ascii:%d  Char:%c",
                           j_getkeycode(keylst),
                           j_getkeychar(keylst),
                           (char)j_getkeychar(keylst));
            j_settext(frame,str);
        }
    }
    :

Zunächst wird mit der Funktion:


    keylst=j_keylistener(frame);

ein Keylistener erzeugt, und an den Frame gebunden. Wird nun innerhalb des Frames eine Taste gedrückt, so meldet der Keylistener einen Event. Mit den beiden Funktionen:


    j_getkeycode(keylst)
    j_getkeychar(keylst)
        

kann jederzeit die letzte gedrückte Taste abgefragt werden. Während j_keychar() den ASCII Code zurückliefert, kann mit der Funktion j_keycode() der Tastaurcode einer Taste abgefragt werden. So können auch ASCII-lose Tasten wie Funktionstasten und Sondertasten ermittelt werden4.1.

Abbildung: Beispielprogramm für einen Keylistener. Jede gedrückte Taste wird in der Kopfzeile der Applikation vermerkt. Es erfolgt die Ausgabe des Tastaturcodes und des ASCII Codes der Taste. Im Beispiel nach dem Drücken der Taste ''g''.
keylistener.eps


next up previous contents
Nächste Seite: Focus Listener Aufwärts: Die Listener Vorherige Seite: Mouse Listener   Inhalt
Merten Joost 2003-02-26