简体   繁体   中英

Java Swing - KeyListener

How can I know when the key typed change my text? Or if the key is a char?

The interface KeyListener contain three methods:

void keyTyped(KeyEvent)
void keyPressed(KeyEvent)
void keyReleased(KeyEvent)

So, if you get the char in the KeyEvent object like:

if ("a".equals(KeyEvent.getKeyChar()))
    System.out.println("It's a letter")

i guess you want to know wether typing a specific key actually prints a char or is some "invisible" control character or something:

in this case you can check the typed key in the KeyEvent which gets passed into the implemented methods of the KeyListener:

this quick example should work, although i didnt test it. It constructs a new String on the char returned by the KeyEvent, than invokes the length() method to chekc if the char created a readable character in the String. kinda hacky but i hope you get the gist of it

public void keyReleased(KeyEvent ke){
    if (new String(ke.getKeyChar()).length() == 0){
        // do something important...
    }
}

alternativley you can use ke.getKeyCode() and check vs the static fields in KeyEvent (VK_F12,VK_ENTER...)

check here:

http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html

You need a document listener. See the oracle docs for more information: How to Write a Document Listener

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM