2012-02-15 16 views
0

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

私の '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番目のタブに移動します。私はこれを避けたいです。 (画像を投稿することができませんcuzのは、新規ユーザーです。リンクをチェックしてください)

enter image description here

enter image description here

答えて

2

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

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

keyPressedの方法では、右/左にある場合はタブを切り替えて、適切なリストのrequestFocus()メソッドを呼び出します。

タブコンポーネントからタブボタンを取得し、フォーカスが失われないようにフォーカスをfalseに設定する必要があります。

+0

ありがとうございます! :).....これは私のために働く – Nikhil