0

フォームの上に3つの「TABS」を埋め込みました。各タブには「リスト」があります。あるタブから別のタブにフォーカスを変更するときはいつでも、リストにフォーカスを持たせたいです。リストに常にフォーカスがあるようにするにはどうすればよいですか?gameKeyEventsを使用してナビゲートします。ゲームのキーイベントのフォームにactionListenerを追加しました。フォームにアクションリスナーを追加する必要があるため、フォームのkeyReleased()メソッドをオーバーライドできません(他のコマンドも含まれています)。

'Tabs'クラスのkeyreleased()メソッドをオーバーライドしようとしましたが、機能しません(WHY ??)。何も起こりません。

Tabs holder = new Tabs()
    {
        public void keyReleased(int keyEvent)
    {
    System.out.println("key release is working"); // this statement does not work
    }
      };

左右のキーをナビゲートしてタブを移動すると、リストのフォーカスが失われ(選択範囲が薄く表示されます)、それ以外の場合はフォーカスが保持されます(選択範囲が安定して表示されます)。リストに常にフォーカスがあるようにするにはどうすればよいですか。これは私のプログラムが機能するために非常に重要です。スナップショットを添付しました。手伝ってください。

添付の写真をご覧ください。

写真1では、リスト項目3が強調表示されていることがわかります。ここで、ゲームの左/右/下のキーを押すと...フォーカスがリストから消え、3番目の位置のタブに移動します。これを防ぎたい。(画像を投稿することはできません。新しいユーザーです。リンクを確認してください)

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

1 に答える 1

2

フォームを取得してオーバーライドkeyReleased/keyPresedし、ゲームキーの右/左を検出します。

右または左のキーを取得したときは、スーパーを呼び出さないでください(他の場合は常にスーパーを呼び出します)。

メソッドでkeyPressed右/左になったら、タブを切り替えてrequestFocus()、適切なリストのメソッドを呼び出します。

リストがフォーカスを失うのを防ぐために、タブコンポーネントからタブボタンを取得し、フォーカス可能falseに設定する必要があります。

于 2012-02-16T06:22:49.377 に答える