0

我开发了一个简单的 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();
4

0 回答 0