これに困惑しましたが、たぶん、誰かが以前にこの問題を抱えていて、私を正しい方向に向けることができるかもしれません。
実行時間の長いタスクの進行状況を表示するためのJDialogがあります。これは、定義された所有者を持つモーダルとして明示的に作成しました。
progressDialog = new JDialog( ((Dialog)windowParent), true );
...
progressDialog.setVisible( true );
後で、タスクが完了したら、ダイアログを再度閉じます。
protected void done() {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
progressDialog.setVisible( false );
}
} );
}
非常にまれな状況では、ダイアログa)が閉じず、b)真にモーダルではありません。つまり、ユーザーは(理論上の)ダイアログの背後にあるウィンドウを操作できます。これを引き起こしている可能性のあるアイデアはありますか?残念ながら、これは非常にまれにしか発生せず、これまではLinuxシステムでのみ発生していました。これはSwingのバグでしょうか、それとも何か間違ったことをしている可能性がありますか?