2011-04-23 269 views
0

Java新手在这里......谨慎!SwingWorker任务执行()的奇怪结果

我已经使用此example作为基础设置了此练习应用程序。不幸的是我有一个问题。如果我只是运行该程序,SwingWorker任务适用于非常小的数据集,但只会在较大的数据集中部分停止。我知道这个应用程序并不是最高效的,但我无法弄清楚它为什么会停滞(甚至是在哪里)。

我已将代码放到here

在此先感谢。

+0

你试过调试过吗?暂停工作线程并查看它“卡住”的位置。 – 2011-04-23 01:25:09

回答

1

创建堆栈跟踪或使用调试器,如果您认为线程已停止。应该给你一个想法。查看代码:确保只在swing事件线程中更改摆动组件,即完成的代码应该将文本字段设置为计算结果。

+0

谢谢,将文本更新移动到done函数至少使它显示了它迄今的进度。但它确实表明任务过早报告结束。我不知道如何从中获得堆栈跟踪,根据java没有发现“出错”。我将通过调试器再次完成它。 – iwasinnamuknow 2011-04-23 01:28:20

+0

尝试在'try {} catch(Exception e){e.printStackTrace();}中包装doInBackground中的代码。 }' – 2011-04-23 01:30:00

+0

谢谢Jochen。当我试图设置进度条值> 100时,它正在抛出。我认为在进度条上设置最大值将允许我这样做,但我错了。 – iwasinnamuknow 2011-04-23 01:36:36