2

これはおそらく JDialog の使用方法ではないと思うので、この質問について少し気分が悪いですが、とにかく:

ラベルだけを含む非常に単純な JDialog があり、アプリケーションがメインのスイング スレッドで数秒間だけ実行されるタスクを実行している状況でそれを表示したいと考えています。ダイアログは、短いブロッキング タスクの実行中にユーザーがメイン GUI で何もクリックできないようにするためのモデルである必要があります。タスクが完了したら、ユーザーの操作なしでモーダル ダイアログを破棄する必要があります... setVisible(true) メソッドが呼び出されると、実行が停止したように見えるため、これはモーダル ダイアログでは機能しないようです。ユーザーの操作なしで所有者側からそれを閉じる方法を理解する必要はありません...

このようなブロッキング ダイアログを別の方法で実装する方法について、ヘルプや提案をいただければ幸いです。

4

1 に答える 1

2

はい、UI スレッドでモーダル ダイアログを表示すると、実行が停止します。これを克服するには、SwingWorker を使用するか、新しいスレッドを作成するだけです

于 2012-05-09T15:57:36.330 に答える