JavaTextFieldでの特定のキー押下を無視しようとしています。文字/数字/記号を入力するたびに発生するイベントが必要なため、KeyListenerを追加しました。
他のボタンが押されたときにイベントが発生することは望ましくありません。これを達成するために、私は現在これを行っています:
@Override
public void keyPressed(KeyEvent arg0) {
// System.out.println(arg0);
if (arg0.getKeyCode() != (KeyEvent.VK_ENTER)
&& arg0.getKeyCode() != (KeyEvent.VK_BACK_SPACE)
&& arg0.getKeyCode() != (KeyEvent.VK_DELETE)
&& arg0.getKeyCode() != (KeyEvent.VK_UP)
&& arg0.getKeyCode() != (KeyEvent.VK_DOWN)
&& arg0.getKeyCode() != (KeyEvent.VK_LEFT)
&& arg0.getKeyCode() != (KeyEvent.VK_RIGHT)
&& arg0.getKeyCode() != (KeyEvent.VK_SHIFT)
&& arg0.getKeyCode() != (KeyEvent.VK_CAPS_LOCK)
&& arg0.getKeyCode() != (KeyEvent.VK_PAGE_DOWN)
&& arg0.getKeyCode() != (KeyEvent.VK_PAGE_UP)
&& arg0.getKeyCode() != (KeyEvent.VK_SCROLL_LOCK)
&& arg0.getKeyCode() != (KeyEvent.VK_NUM_LOCK)
&& arg0.getKeyCode() != (KeyEvent.VK_ESCAPE)) {
// fire event here
}
}
明らかにこれは醜いです。これを行うためのより良い方法は何ですか?