私はこれを数時間見てきましたが、自分の道を案内するものは何も見つかりませんでした。私はSwingWorkerでいくつかのバックグラウンド処理を実行しているWindows Swing GUIプログラムを持っています。これはまた、進捗ダイアログを使用して、バックグラウンド処理にどれくらいの時間がかかるかをユーザーに知らせる。Swingのalt-tabでペインティングの問題を診断するのに必要なヘルプ
このシステムの元の設計者は、進行状況ダイアログの[キャンセル]ボタンを除いて、マウスとキーボードの入力を無効にすることを決定しました。彼らはマウスとキーボードのすべての事象を無視するガラス板を使ってこれを行いました。
実際の問題は、ユーザーalt-tabsまたはスクリーンセーバーが発生した場合、ガラスパネルの後ろのユーザーインターフェイスが決して再描画されないことです。プログレスダイアログは再描画されますが、これはSwingWorkerがプログレスを更新するために定期的に再描画を呼び出すためです。
私は次の場所を参考にしたいと思います。私はalt-tabでJavaで何かを見つけることができませんでした。おそらく進捗ダイアログは定義上モーダルでEDTの再描画を妨げるでしょうか?あるいは、ガラスの部分が「隠された」コンポーネントの塗り直しを防ぎますか?
おかげで、 ライアン
あなたが役に立った答えを投票してください。 「自分のニーズに合ったベスト」がない場合は受け入れる必要はありません。 –