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 に答える