54得票2回答
我该如何在Java中使用SwingWorker?

与我的上一个问题相关:在Java中如何从另一个类调用repaint()方法? 我是Java的新手,看了一些SwingWorker的教程。然而,我不确定如何将其与我之前提到的代码示例相结合。 请问有人可以解释一下如何在我的代码片段中使用SwingWorker,或者指向一个不错的教程吗...

36得票3回答
进度条能否在主函数外的类中使用?

目前,我的主程序只调用一个带有10行文本的GUI。根据这些行中有多少文本,将调用1个9个类之一(必须有两行文本)。被调用的类执行我想要与进度条相关联的计算。下面是其中一个被调用类的示例(每个类都类似,但不同到需要新的类)。我认为问题是EDT规则的违反,但我见过的所有示例都涉及一个main参数。...

27得票4回答
停止/取消SwingWorker线程?

我正在尝试找出如何在按下按钮时停止 SwingWorker 线程的运行。我已经搜索了一些资料,但现在还不太清楚如何实现。目前这是我所拥有的:new MySwingWorkerClass(args).execute(); 我接下来要创建一个按钮,我想用它来停止线程:button = new JB...

24得票7回答
使用SwingWorker时如何处理异常?

我在Java 6中使用SwingWorker来避免在事件分派线程上运行长时间运行的代码。 如果在我的done()方法中调用get()返回一个异常,处理异常的适当方式是什么? 我特别担心可能出现的InterruptedException。JavaDoc示例只是忽略了异常,但多年来我已经学到,...

21得票2回答
如果线程启动执行器,无法从Future<?>和SwingWorker中获取ArrayIndexOutOfBoundsException异常

我尝试使用Executor为SwingWorker进行多线程编程,但出错后误认为从Vector中选择了错误的元素。代码似乎完全忽略了Vector中不存在的元素。我的问题是->如何/是否有可能以某种方式捕获这些异常简单输出run: Thread Status with Name :StartSh...

21得票6回答
SwingWorker:done方法何时被调用?

SwingWorker的done()方法的Javadoc: doInBackground方法完成后,在事件派发线程上执行。 我有线索表明在取消工作线程的情况下,这不是正确的。done无论是在正常终止还是取消时都会被调用,但是当cancelled为真时,它不会被加入到事件派发线程中,...

20得票2回答
SwingWorker,在 process() 调用完成之前,done() 就已经执行

我使用SwingWorker工作已经有一段时间了,但是我遇到了一个奇怪的行为,至少对我来说很奇怪。我清楚地理解,由于性能原因,publish()方法被多次调用时会合并为一个调用。这对我来说完全合理,我怀疑SwingWorker保留某种类型的队列以处理所有这些调用。 根据教程和API,在Swi...

17得票4回答
为什么要使用SwingWorker?为什么不能只用Thread或者Runnable?

使用SwingWorker相对于使用Thread或Runnable的优势是什么?

16得票3回答
如何使这个SwingWorker代码可测试

考虑以下代码:public void actionPerformed(ActionEvent e) { setEnabled(false); new SwingWorker&lt;File, Void&gt;() { private String locati...

16得票2回答
如何使我的SwingWorker示例正常工作?

我已经制作了自己的SwingWorker示例来熟悉它的工作方式。我想做的是:当单击按钮时,我希望进度条出现,直到任务完成,然后简单地删除进度条并在对话框中添加一个字符串。 当单击按钮时,进度条出现,但永远不会消失。(10秒后从未删除进度条,也从未将标签放置在上面) 这是一个SSCCE:pa...