>我已经在文本区域中添加了一个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()
返回按下键的字符值/代码的方法。
对于字母数字 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
}
创建相应关键事件的列表,并检查列表是否包含这些事件。
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())){
}
}