1

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

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...){  

    }   
}
4

3 回答 3

3

您不需要任何 if 语句。每当按下某个键时都会触发该keyPressed方法,因此您会自动进入该方法。

于 2014-02-19T19:55:41.417 回答
3

我认为您可以使用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
}
于 2014-02-19T20:17:16.367 回答
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())){  

    }   
}
于 2014-02-19T19:56:16.680 回答