У меня есть JTextfield
с Keylistener
прикрепленного так:KeyListener не стреляя события в JTextField
field.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
log.debug("KEY PRESSED");
}
@Override
public void keyTyped(KeyEvent e) {
log.debug("KEY TYPED");
}
@Override
public void keyReleased(KeyEvent e) {
log.debug("KEY RELEASED");
}
});
Но когда я ввожу некоторые ключи я могу видеть, что keyReleased
не всегда стрельбы. Я не могу сразу вводить какие-либо ключи, если он не срабатывает, я должен снова щелкнуть по текстовому полю или ввести другой ключ, чтобы получить освобожденное событие (введенный ключ не отображается в текстовом поле). Я ничего не делаю с Keys, никакое событие не будет поглощено. Похоже, что мероприятие становится случайным. То же самое происходит с KeyListener
вместо KeyAdapter
:
field.addKeyListener(new KeyListener() {
Я использую Linux 64bit, но это также происходит на Win8 и Win10 64bit. Также пробовали разные клавиатуры и разные компьютеры.
Как я могу правильно запустить мероприятие?
Не используйте 'KeyListener' с текстовые компоненты, вместо этого используйте «DocumentListener» – MadProgrammer
Какие ключи вызывают проблемы? Когда вы зарегистрировали «KeyListener» в текстовом поле, введенный ключ должен находиться в текстовом поле. Например. «TAB» может изменить фокус на следующий компонент. – hotzst
@hotzst Это происходит с любым ключом из a-z, включая числа. –