Java Swing长时间线程执行

4
我编写了一个框架,用于执行需要很长时间的计算(大约15分钟)。现在我想编写一个Swing界面,从数据库中收集数据并执行这些计算。我现在想知道最佳实践是什么?如果我在事件线程中进行耗时计算,整个界面会冻结直到代码完成。我开始考虑创建一个可以处理所有计算任务的对象,但在执行过程中如何处理进度和状态信息呢?我还有几个可以执行的操作,例如需要不同数据的不同计算。我需要为每个操作编写一个对象吗?如果我分离视图和计算,我需要交换数据 - 那么最佳实践是什么呢?谢谢和最好的问候。Marco
2个回答

3
请看一下SwingWorker(适用于Java 6,但您可以获取适用于Java 5的库版本)。使用SwingWorker,您可以在doInBackground()方法中运行耗时的方法,并在完成时调用上的done()方法,以便更新GUI。如果可能,它还提供了一种通知GUI任务进度的方式。

谢谢,SwingWorker听起来真的很有趣。 - user212926

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接