Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

JOptionPaneで表示したダイアログを閉じた後のフォーカス

JOptionPane.showMessageDialogなどで表示したダイアログを閉じた後、
フォーカスはどこにあるのでしょうか。
また、任意のコンポーネントにフォーカスを移すことは出来ますでしょうか。
(requestFocusInWindowを使いましたが出来ませんでした)

2

回答

6830

閲覧

2件の回答

評価

30

grabFocus() 使えば

 requestFocusInWindow() との違いは最上位コンポーネントにフォーカスが設定されてる場合のみフォーカスが当たるかどうか。簡単に言えば、そのフレームがアクティブだった場合のみフォーカスが当たるのが requestFocusInWindow() 。そのフレームをアクティブにさせて、そのコンポーネントにフォーカスを当てるのが grabFocus() ってことだと思う。

SSCCE 書いたけど、↓の例だと結局どっち使ってもちゃんと5番目のテキストフィールドにフォーカス当たるね。
http://pastebin.com/03bBFvFG

評価

0

あぁ、インデックスで指定したから6って書いてあるテキストフィールドにフォーカスあたってるね。あんま気にしないで。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。