私は通常のパネルとウィジェットを含むJFrameを持っています。私はそのJFrameのglassPaneとして使用しているJPanelを持っています。私は、キーボードフォーカスのトラバースを、表示されているときにglassPaneのコンポーネントに制限できるようにしたいと考えています。スイング:キーボードのフォーカストラバーサルを特定のウィジェットに限定する
私の問題は、バックグラウンドスレッドがプロセスを起動して、進行中のダイアログが表示され、その後消えてしまい、glassPane内のウィジェットからフォーカスを盗みますが、その下のウィジェットに戻すという事実によって、私のglassPane。
私は、JFrameのフォーカストラバーサルポリシーを、glassPaneのフォーカスのみを許可するように設定しようとしましたが、効果がないようです。 (たぶん私はそれを間違ってやったのでしょうか?)
助けていただければ幸いです。
あなたのアプリケーションは非常に複雑であると思われます。好奇心の中で、どのような種類のコンポーネントをガラス板に表示していますか、なぜガラス板ですか? –
glassPaneには、スクロールするTextPane、JCheckBox、およびJButtonがあります。これはEULAの表示に使用されており、ユーザーはアプリケーションを使用する前にその条件に同意する必要があります。私のユーザーはモーダルJDialogを使用したときに不平を言ったので、私は代替案を検討しています。 –
私はそれを間違って実行したかもしれません - おそらく、あなたのコードを見ることなく伝えるのは難しいでしょう:-)つまり、glasspane _is_ trickyを管理すると(カスタムftpはmouseEventsの責任を負いませんのであまり役に立ちません) JLayer(jdk7の場合)またはJXLayer(jdk6の場合)を使用することを検討することもできます。 – kleopatra