Swing KeyListener in JPanel

Chloroplast

Bekanntes Mitglied
Ich benutze in einem JPanel einen KeyListener. dieser ist im JPanel Implementiert. mit
Java:
setFocusable(true);
kann ich dass Panel nun auch fokussieren. auch die
Java:
keyTyped(KeyEvent e)
Methode wird aufgerufen. doch
Java:
e.getKeyCode()
ist immer == 0

kann mir jemand erzählen was ich falsch mache? bei google finde ich nur entweder das problem dass das JPanel keinen fokus kriegt oder dass bestimmte Tasten nicht funktionieren

(sorry für meine komische ausdrucksweise, ich verzweifel hier gerade)
 
Willst du eine übergeordnete Begründung, oder reicht der Hinweis auf How to Write a Key Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)

Java:
        //You should only rely on the key char if the event
        //is a key typed event.
        int id = e.getID();
        String keyString;
        if (id == KeyEvent.KEY_TYPED) {
            char c = e.getKeyChar();
            keyString = "key character = '" + c + "'";
        } else {
            int keyCode = e.getKeyCode();
            keyString = "key code = " + keyCode
                    + " ("
                    + KeyEvent.getKeyText(keyCode)
                    + ")";
        }

Intuitiv: "Typed" heißt, dass man irgendeinen Character eingetippt haben muss. Der KeyCode ergibt nur bei den anderen Typen Sinn...
 

Neue Themen


Zurück
Oben