1

フォーカスのあるリストをアプレットに追加しました。

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

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

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

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

4

1 に答える 1

2

それが KeyListener をサポートするコンポーネントであると仮定すると、 a を追加するだけで、コンポーネント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: 
                    }
        });
于 2012-05-05T04:57:30.050 に答える