KeyEvent.getKeyCode()始终返回零

时间:2016-11-26 01:35:11

标签: java swing

我在我的小学校项目中正在制作暂停键,但由于某种原因它拒绝工作。使用此代码:

numpy.float128

出于某种原因,“代码”始终保持为零。我试图把它放在不同的空隙(按下/释放等),但它仍然无法正常工作。可能是什么原因?

2 个答案:

答案 0 :(得分:3)

以下是javadoc关于getKeyCode()

的说法
  

返回:键盘上实际键的整数代码。 (对于KEY_TYPED个事件,keyCode为VK_UNDEFINED。)

VK_UNDEFINED的值为零。

javadoc也说:

public static final int KEY_TYPED
     

“键入类型”事件。输入字符时会生成此事件。在最简单的情况下,它是通过一键按压产生的。但是,通常,字符是由一系列按键产生的,从按键事件到键输入事件的映射可能是多对一或多对多。

所以也许你正在看错误的关键事件。也许应该查看KEY_PRESSEDKEY_RELEASED事件而不是KEY_TYPED事件。

答案 1 :(得分:0)

为什么不再尝试keyPressed()方法,如下例所示:

public void keyPressed(KeyEvent e) {
    int code = e.getKeyCode();
    switch( code ) { 
        case KeyEvent.VK_UP:
            // handle up 
            System.out.println(code);
            break;
        case KeyEvent.VK_DOWN:
            // handle down 
            break;
        case KeyEvent.VK_LEFT:
            // handle left
            break;
        case KeyEvent.VK_RIGHT :
            // handle right
            break;
     }
} 

请注意,您必须使用整数。

相关问题