我开发了一个简单的swing应用程序,其中我使用SwingWorker运行一个进程,并在进程运行时向最终用户显示一个不确定的进度条。
只要该过程完成,我就会在SwingWorker的done()方法中设置ProgressDialog的可见性。
现在的问题是,当最终用户点击父窗口时,它会聚焦并且进度对话框将返回到主窗口,当我尝试将对话框的模态设置为true时,我不想要它将我的程序保存在那里只有我的SwingWorker线程才开始。
由于我是Swing的新手,请告诉我如何能够同时实现这两个目标。
我的swingworker应该停止,因为当我们为对话框设置modality tru时,用户不应该点击main。
代码段:
ProgressDialog myProgressDialog = new ProgressDialog();
myProgressDialog.setVisible(true);
myProgressDialog.setLocationRelativeTo(this);
mySwingWorkerForUpdate = new SwingWorker<String, String>() {
@Override
protected String doInBackground() throws Exception {
//my code here
}
@Override
protected void done() {
super.done();
mySwingWorkerForUpdate = null;
myProgressDialog,setVisibility(false);
}
};
mySwingWorkerForUpdate.execute();