Проверьте, если это персонаж
После получения действия от KeyListener, используя event.getKeyCode(), а затем KeyEvent.getKeyText(keyCode), как я могу проверить, является ли результат.getKeyText (keyCode) одним символом, например "a", а не целое слово как "Космос"?
4 ответа
Решение
Попробуй это:-
if ((event.keyCode > 64 && event.keyCode < 91) || (event.keyCode > 96 && event.keyCode < 123) || event.keyCode == 8)
{
if(KeyEvent.getKeyText(keyCode).length == 1)
{
//Only one character is pressed.
}
}
Вы можете использовать getKeyChar() KeyEvent, и тогда вы будете уверены, что вы получите только один символ.
Например, что-то вроде этого:
public void keyTyped(KeyEvent e) {
keyChar = e.getKeyChar();
...
}
Это решение работало для всего, кроме клавиш удаления и цифровых клавиш...
event.getKeyChar() != '\uFFFF'
Поскольку любая Java выводит этот символ для неперерисовываемых ключей, он работает достаточно согласованно.
Чтобы исправить проблему удаления ключа...
event.getKeyChar() != '\uFFFF' && event.getKeyCode() != KeyEvent.VK_DELETE
Он вернется true
если ключ для печати, и false
если не.