【发布时间】:2012-08-15 08:00:46
【问题描述】:
可能重复:
How I append text to textarea with using swingworker class?
我在 for 循环中附加了我的 jtextarea 多行。当我添加行时,我在文本上看不到任何行,但是当 for 循环完成时,所有行都显示出来了。我怎样才能一一看到每一行?
【问题讨论】:
可能重复:
How I append text to textarea with using swingworker class?
我在 for 循环中附加了我的 jtextarea 多行。当我添加行时,我在文本上看不到任何行,但是当 for 循环完成时,所有行都显示出来了。我怎样才能一一看到每一行?
【问题讨论】:
不要在Event Dispatching Thread 中执行您的进程,它会阻止重绘更新的发生。
您应该使用SwingWorker API
还有,看看
让我猜猜你在做什么
while (doSomeWork) {
// do some processing
textArea.append(someText);
}
或者可能是for 循环
而你,有些期待 UI 神奇地更新?
不幸的是,尽管我很喜欢它那样工作,但它不是那样工作的。
为了更新屏幕,您必须允许事件调度线程继续运行,以便它可以处理重绘请求(以及一堆其他重要的事情),您需要将处理负载转移到另一个线程。
不,没有其他方法,最简单的方法是使用 SwingWorker
【讨论】:
我不确定,但在你的 for 循环中使用它: jTextArea.updateUI();
【讨论】: