2013-07-18 27 views
0

我知道有很多关于这个问题的问题,并且我在过去的2个小时中经历了大多数问题,找到了一个可行的答案,但都没有成功。J进度条和并发性

我的困境是我在制作地理编码器。我的程序只是一个gui,允许用户选择一个包含要读取的地址的excel文件,然后按另一个按钮创建一个新的包含所述数据以及与其关联的经度和纬度的excel文件。现在,我的客户端很可能一次运行数千行,这就是为什么我想添加进度条而不是让程序挂起。但是,现在的问题是,如预期的那样,酒吧不会更新,直到结束。

现在我阅读了关于摆动工作者,但我似乎无法得到如何实施它。我的操作执行方法应该什么都不做,而是在所有工作完成后创建一个新线程?如果是这样,我将如何获得工作状态?我现在对这个问题感到非常困惑,并希望得到任何帮助。

谢谢。

回答

1

在这里,你有一个完整的example我真的想知道你怎么用 SwingWorker

一个基本的例子:

public class MySwingWorker extends SwingWorker<String,String> { 

     @Override 
     public String doInBackground() { 
      //here you make heavy task in another thread 
      // you call publish or setProgress or both 
     } 

     @Override 
     protected void done() { 
      //here is call when job is done, you can update here your gui 
     } 

     public void process(List<String> chunks){ 
      // this is called when you do publish in the background here 
      // you update the gui 
     } 

} 

你在你的actionPerformed如果你想与mySwingWorker.execute()

执行此方法
+0

谢谢你的帮助。 难道你错过了第一行的课程吗? – Niehm

+0

@尼姆你说得对;)考虑接受一个答案,并提升所有帮助你的人。 – nachokk

+0

它的工作,再次感谢stackoverflow;) – Niehm