私はCLIで動作するプログラムを持っていますが、JOptionPaneを使用してポップアップメニューを表示してイベントをユーザーに警告します。私は、showMessageDialogメソッドが呼び出されたときに結果のポップアップメニューが自動的にフォーカスしないことに気付きました。JOptionPane showMessageDialogコンソールプログラムのフォーカスを要求します。
ポップアップダイアログボックスのフォーカスを要求する方法はありますか?私はJOptionPane上でrequestFocusを呼び出そうとしましたが、無駄です。
ここにいくつかのサンプルコードがあります。
System.out.println("Backing up...");
//backUp();
Component frame = null;
JOptionPane jop = new JOptionPane();
jop.showMessageDialog(frame, "Backup complete. Ready for encryption.");
私はこれが再投稿の場合はお詫び申し上げますが、これまでの回答を見つけることができませんでした。
私はちょうどあなたのコードを試してみましたし、それが自動的に得ましたフォーカス!テストするには、「Enter」を押して、ポップアップが消えないかどうかを確認してください。 – mohsenmadi
@mohsenmadi私は別のウィンドウにいる場合、それは問題ではありません。通常は 'requestFocus()'を呼び出すことでこの問題を回避することができますが、 'showMessageDialog'は静的で、' jop.requestFocus() 'の呼び出しは効果がありません。糸。 – Sollybird
まだ再生できませんでした!私は 'try {Thread.sleep(2000); JOptionPane.showMessageDialog(null、 "Back ...");} catch(InterruptedException e){} '他のウィンドウにフォーカスする時間を与えます。結果?まだポップアップが表示されたときにフォーカスを得ました!私はMacで走っています - 多分異なるシステムは違った動作をしますか? – mohsenmadi