Java Swing - KeyListener - PullRequest
       5

Java Swing - KeyListener

0 голосов
/ 28 июля 2010

Как я могу узнать, когда введенный ключ меняет мой текст?Или если ключ является символом?

Ответы [ 3 ]

2 голосов
/ 28 июля 2010

Интерфейс KeyListener содержит три метода:

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

Итак, если вы получите символ в объекте KeyEvent , например:

if ("a".equals(KeyEvent.getKeyChar()))
    System.out.println("It's a letter")
1 голос
/ 29 июля 2010

Вам нужен слушатель документа. Для получения дополнительной информации см. Документацию oracle: Как написать слушатель документа

1 голос
/ 28 июля 2010

Полагаю, вы хотите знать, печатает ли конкретная клавиша на самом деле символ или это какой-то невидимый управляющий символ или что-то еще:

в этом случае вы можете проверить набранный ключ в KeyEvent, который передается в реализованные методы KeyListener:

этот быстрый пример должен работать, хотя я его не проверял. Он создает новую строку на символе, возвращаемом KeyEvent, затем вызывает метод length () для проверки, если символ создал читаемый символ в строке. вроде хаки, но я надеюсь, что вы понимаете суть этого

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

Альтернативы вы можете использовать ke.getKeyCode() и проверить статические поля в KeyEvent (VK_F12, VK_ENTER ...)

проверьте здесь:

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

...