フォーカスのあるリストをアプレットに追加しました。
handleEvent では、すべてのキーの押下を処理します。
キーに対してアクションを実行します。
キーが矢印キーの場合、リストもあちこちにジャンプしています。これは望ましくありません。リストは、キー イベントではなく、マウス イベントにのみ応答する必要があります。
List コンポーネントのデフォルトのキー処理をオーバーライドまたは削除するにはどうすればよいですか?
フォーカスのあるリストをアプレットに追加しました。
handleEvent では、すべてのキーの押下を処理します。
キーに対してアクションを実行します。
キーが矢印キーの場合、リストもあちこちにジャンプしています。これは望ましくありません。リストは、キー イベントではなく、マウス イベントにのみ応答する必要があります。
List コンポーネントのデフォルトのキー処理をオーバーライドまたは削除するにはどうすればよいですか?
それが KeyListener をサポートするコンポーネントであると仮定すると、 a を追加するだけで、コンポーネントKeyListener
にconsume()
到達しません。いくつかの追加のキーを追加しました。
jl.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent ke) {
int key = ke.getKeyCode();
switch (key){
case KeyEvent.VK_DOWN:
case KeyEvent.VK_UP:
case KeyEvent.VK_RIGHT:
case KeyEvent.VK_LEFT:
case KeyEvent.VK_KP_DOWN:
case KeyEvent.VK_KP_UP:
case KeyEvent.VK_KP_RIGHT:
case KeyEvent.VK_KP_LEFT:
ke.consume();
break;
default:
}
});