Java swingworker进程运行时显示进度对话框

Java swingworker进程运行时显示进度对话框,java,swing,Java,Swing,我开发了一个简单的swing应用程序,其中我使用SwingWorker运行一个进程,并在进程运行时向最终用户显示一个不确定的进度条 流程完成后,我将在SwingWorker的done()方法中设置ProgressDialog的可见性为false 现在的问题是,当最终用户单击父窗口时,它会变得集中,进度对话框会返回到主窗口,而当我试图将对话框的模态设置为true时,我不希望返回主窗口,因为它只在那里保存我的程序,我的SwingWorker线程根本不会启动 因为我是Swing的新手,让我知道如何才能

我开发了一个简单的swing应用程序,其中我使用SwingWorker运行一个进程,并在进程运行时向最终用户显示一个不确定的进度条

流程完成后,我将在SwingWorker的done()方法中设置ProgressDialog的可见性为false

现在的问题是,当最终用户单击父窗口时,它会变得集中,进度对话框会返回到主窗口,而当我试图将对话框的模态设置为true时,我不希望返回主窗口,因为它只在那里保存我的程序,我的SwingWorker线程根本不会启动

因为我是Swing的新手,让我知道如何才能同时实现这两个目标

我的swingworker应该停止,并且当我们为对话框设置模态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();
ProgressDialog myProgressDialog=新建ProgressDialog();
myProgressDialog.setVisible(true);
myProgressDialog.setLocationRelativeTo(此);
mySwingWorkerForUpdate=新SwingWorker(){
@凌驾
受保护的字符串doInBackground()引发异常{
//我的代码在这里
}
@凌驾
受保护的void done(){
超级。完成();
mySwingWorkerForUpdate=null;
myProgressDialog,setVisibility(false);
}
};
mySwingWorkerForUpdate.execute();

使对话框成为模态,但在启动工作后调用
setVisible(true)
设置模态后,新问题出现
myProgressDialog.setLocationRelativeTo(this)停止工作,我的对话框一直出现在机器的左角。请参阅上一页question@damo我喜欢这个答案您的第一条评论可能应该作为答案发布在这里。@HovercraftFullOfEels我将问题标记为重复,而不是回答。似乎有相当多的问题问同样的问题