0

在从 KeyListener 获取操作后,使用 event.getKeyCode() 并稍后使用 KeyEvent.getKeyText(keyCode),我将如何检查 .getKeyText(keyCode) 的结果是否是单个字符,例如“a”而不是像“空间”这样的整个词?

4

4 回答 4

0

您可以使用 KeyEvent 的 getKeyChar(),然后您可以确定您返回的是单个字符。

例如这样的:

   public void keyTyped(KeyEvent e) {
        keyChar = e.getKeyChar();
        ...
   }
于 2013-08-12T18:45:44.143 回答
0

这个怎么样:

KeyEvent.getKeyText(keyCode).length == 1
于 2013-08-12T18:47:14.277 回答
0

试试这个:-

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.
  }
}
于 2013-08-12T18:48:58.947 回答
0

该解决方案适用于除删除键和小键盘键之外的所有内容...

event.getKeyChar() != '\uFFFF'

因为任何 Java 都会为不可渲染的键输出该字符,所以它的工作方式非常一致。

要解决删除密钥问题...

event.getKeyChar() != '\uFFFF' && event.getKeyCode() != KeyEvent.VK_DELETE

true如果密钥可打印,它将返回,否则返回false

于 2017-05-13T00:57:08.907 回答