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

我已经向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...){ } } 

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

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

对于字母数字AZ,az,0-9;

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

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

 List keyEvents = new ArrayList(); 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())){ } }