4

アクティブなウィンドウでなくてFrameも、上にモーダル (進行状況) ダイアログを表示したいと思います。Frameただし、ダイアログを表示すると、そのダイアログまたはその所有者がアクティブ ウィンドウになります。特にWindowsプラットフォームで、ダイアログまたはその所有者がアクティブウィンドウにならないようにダイアログを表示する方法はありますか?

これを行いたい理由は、定期的に自分自身Frameを更新し、更新中にモーダル進行状況ダイアログを表示するためです。現在、私のアプリケーションは、アクティブなウィンドウである間だけ更新されます。

SSCCE、人々がそれを求めているので:

Frame frame = new JFrame();
frame.setVisible( true );
// 30 seconds later (using a Timer/TimerTask)
Dialog dialog = new JDialog( frame, ModalityType.DOCUMENT_MODAL );
dialog.setVisible( true );
4

1 に答える 1

3

モーダルダイアログでこれを行うことはできないと思います。

ただし、非モーダル ダイアログでは次のように動作します。

dialog.setFocusableWindowState( false );
dialog.setVisible(true);
dialog.setFocusableWindowState( true );

ダイアログが表示されたときはフォーカスがありませんが、クリックするとフォーカスが得られます。モーダル ダイアログでこれを試して、何が起こるかを確認できます。

于 2013-06-19T01:34:22.823 に答える