2012-05-05 6 views
1

フォーカスを持ったアプレットにリストを追加しました。Java - リストのキー処理を無効にする

handleEventでは、すべてのキーを処理します。

私はキーに対してアクションを実行します。

キーが矢印キーの場合、リストはその場所全体にジャンプしています。これは望ましくない。このリストは、キーイベントではなくマウスイベントにのみ応答する必要があります。

リストコンポーネントのデフォルトのキー処理をオーバーライドまたは削除するにはどうすればよいですか?

+0

使用しているリストのタイプはどのようなタイプですか? JList? – Krrose27

+0

申し訳ありませんが、java.awt.Listはスイングしません。 –

+0

問題ではありません。下記参照。 – Krrose27

答えて

2

KeyListenerをサポートするコンポーネントであると仮定すると、KeyListenerconsume()を追加するだけでコンポーネントに届きません。 いくつかの追加キーが追加されました。

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: 
        } 
     });