如何在动作运行时将输出输出到屏幕? (JAVA)

时间:2010-02-26 00:56:23

标签: java

我有一个Java程序,其中启动了一个操作,它循环遍历项目列表,对数据进行一些计算以及各种其他任务。这个过程大约需要10分钟,但我希望在完成该项目的处理时输出列表中每个项目的结果。输出是写入表格中单元格的一组项目。 还有一个进度条,在整个操作完成之前不会更新。

尽管在循环遍历项目列表期间调用了输出语句,但所有输出似乎都排队,并且只在整个操作结束后输出。

我已经看过其他语言的刷新程序来解决这个问题。 Java是否允许这样的刷新?

提前感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:3)

是的,Java确实允许在长时间运行的进程中更新GUI。对于某些背景,请查看concurrency in SwingSwingWorker类的概念。

  

输出是写入表格中单元格的一组项目。还有一个进度条,在整个操作完成之前不会更新。

您没有更新小部件的原因很可能是您在单独的Swing绘制线程中执行长时间运行的过程。这将阻止您的GUI更新,直到该过程结束。

要获得更准确的诊断,请发布一些代码。

答案 1 :(得分:1)

您可以关闭worker threads来执行各种处理。

答案 2 :(得分:0)

使用System.out.flush();撰写邮件后尝试System.out.println();。这会将流刷新到屏幕。