デフォルトのフレームでJOptionPaneをフォアグラウンドにフォーカスできません

プログラムにエラーメッセージを表示するコードがあります。コード:

String ErrorMsg=" Error to be Diplayed ";
JOptionPane.showMessageDialog(null, ErrorMsg, "Failure", JOptionPane.ERROR_MESSAGE);

注:デフォルトフレームが使用されます。

メッセージは正常に表示されますが、他の正常なフローを試みると「OK」ボタンを押して確認する前に、メッセージボックスコントロールが失われ、メッセージボックスは連続フローでもフォアグラウンドにはなりません。

I want the Message Box to be on the foreground always until the user presses "OK" button, rather losing focus and getting hidden. How to do that?

0
@ ShaikMd:GUIの動作が必要な場合は、GUIにします。それ以外のものはあなたが得るものです。
追加された 著者 Hovercraft Full Of Eels,
「デフォルトフレーム」とはどういう意味ですか?これは、 null ではなく showMessageDialog に渡されるコンポーネントでなければなりません。
追加された 著者 Andrew Thompson,
SSCCE を投稿するとすぐに役立ちます。
追加された 著者 Andrew Thompson,
私はコンポーネント[フレーム]を使用していないので、フィールドはnullになります。
追加された 著者 Shaik Md,
@HovercraftFullOfEels:私のプログラムはAWT/Swingアプリケーションではありません。ちょうど1つのエラーを表示するだけで、フレームの使用法はありません。
追加された 著者 Shaik Md,

4 答え

JOptionPaneを本格的なGUIと同じように動作させたい場合は、まず本格的なSwing GUIを作成します。 「デフォルト」のフレームや使用しているもの(コンソールなど)を使用しないでください。あなたはGUIの動作を望んでいるので、これを得るには、アプリケーションをJFrameに表示してJFrameを起動してGUIを作成し、JOptionPaneを起動する必要があります。

3
追加された

ヌル(最初のパラメータ)の代わりに親フレームに参照を渡します。

2
追加された
あなたは、 "デフォルトフレームが使用されています。"参照をJOptionPaneに渡します。
追加された 著者 StanislavL,
@StanislavL:私は彼がコンソールを「デフォルトフレーム」と呼んでいると思います。 1 +しかし、この非常に混乱している質問を助けようとしています。
追加された 著者 Hovercraft Full Of Eels,
コードに親コンポーネントはありません。
追加された 著者 Shaik Md,

ユーザーが「OK」ボタンを押すまで、常にフォーカスを失い隠れてしまうまで、メッセージボックスを常にフォアグラウンドにしたい。

JFrameと setAlwaysOnTop(true)を使用します。あなた自身のメッセージとボタンを表示する必要があります。

JOptionPaneは背後にあるJDialogを使用します。 JDialogはこのプロパティをサポートしていません。

編集:

オプションペインで使用されるアイコンを取得するには、以下を使用します。

Icon icon = UIManager.getIcon("OptionPane.errorIcon");

他のアイコンの一覧については、 UIManagerのデフォルトを参照してください。

2
追加された
私はこれを考えなかったし、これはうまくいく、ありがとう、1+!
追加された 著者 Hovercraft Full Of Eels,
@ ShaikMd、編集を参照してください。
追加された 著者 camickr,
私は同じ手順を踏んだが、エラーシンボルを表示する方法は?
追加された 著者 Shaik Md,
私はJframeを作成し、JLabelとJbuttonを使用して、タイトルバーのフォアグラウンド、ディスエーブル最小、最大オプションに表示させました...要するに、ダイアログボックスのように見えました...今、 "X"エラーシンボルを表示したいそれはちょうどエラーケースのダイアログボックスのように...それを行う方法?私はJdialogクラスから継承しています..
追加された 著者 Shaik Md,

以下のコードは、デフォルトフレームが設定されたJoptionPaneメッセージを上にセットするのに十分です。

        JDialog dialog = new JOptionPane("ErrorMsg",JOptionPane.ERROR_MESSAGE,JOptionPane.DEFAULT_OPTION).createDialog(" Failure"); 
        dialog.setAlwaysOnTop(true);
        dialog.setVisible(true);
        dialog.dispose();
2
追加された