2011-09-27 9 views
1

コンポジットワイドキーボードショートカットをいくつか使いたいと思っています。問題のコンポジットはタブフォルダにあります。私は、私のコンポジットのすべての子をトラバースし、それらのすべてにKeyboardAdapterを追加する少しの機能を持っています。SWT:コンポジットにaddFilterまたはaddKeyListenerを追加

私が持っている問題は、タブを開いたときにキーが登録されていないことです。私はまずタブ内のいくつかの選択可能なウィジェットに焦点を当てて、それが動作します。私が別のタブに切り替えて戻ると、フォーカスはまだそこにあるようです(例えば、テーブルの青の代わりに灰色の選択)。しかし、どこかをクリックするまで、再び動作しません。

どうすればいいですか?私はディスプレイにフィルターを追加することを考えましたが、私は特定のコンポジット(およびその中のすべて)のイベントだけを必要とします。

+1

コードを投稿できますか? – Sorceror

答えて

3

キーイベントがキーボードフォーカスを持つコンポーネントに配信され、ありがとうございました。コンポジットはキーボードのフォーカスを取得しません。通常は子コンポーネントの1つで、キーイベントを受信し始めます(子供が使用しない場合)。親シェルにキーリスナーを置くと、おそらく動作する可能性があります。

+0

私は、どのウィジェットがイベントを取得して、それをこのウィジェットのコントローラ(クラスiが構築したもの)にルーティングするかを確認するロジックを持つKeyFilterを使用してしまいました。 –

関連する問題