Java KeyListener - 如何检测是否按下任何键?

时间:2014-02-19 19:54:24

标签: java key keyevent any pressed

我已经向TextArea添加了一个KeyListener,并希望检查是否按下任何键。 我有以下内容,但检查所有字母和数字太笨拙了:

public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_A || e.getKeyCode() == KeyEvent.VK_B || 
e.getKeyCode() == KeyEvent.VK_C ||e.getKeyCode() == KeyEvent.VK_D etc...){  

    }   
}

3 个答案:

答案 0 :(得分:2)

您不需要任何if语句。只要按下某个键,就会触发keyPressed方法,因此您将被自动抛入该方法。

答案 1 :(得分:2)

我认为您可以使用KeyEvent.getKeyChar() or KeyEvent.getKeyCode()方法返回按下的键的字符值/代码。

对于字母数字A-Z,a-z,0-9;

int key= KeyEvent.getKeyCode();

if((((key>=65)&&(key<=90))||((key>=97)&&(key<=122))||((key>=48)&&(key<=57)))
{
//Do action
}

答案 2 :(得分:1)

创建相应关键事件的列表,并检查列表是否包含这些事件。

List keyEvents = new ArrayList<KeyEvent>();
keyEvents.add(KeyEvent.VK_A);
keyEvents.add(KeyEvent.VK_B);
keyEvents.add(KeyEvent.VK_C);
keyEvents.add(KeyEvent.VK_D);

public void keyPressed(KeyEvent e) {
if(keyEvents.contains(e.getKeyCode())){  

    }   
}