[英]JTextArea not updating in real time despite attempt at correct threading
[英]JtextArea update issue not updating real time
我当前正在编写一个应用程序,单击鼠标即可运行几种更新JtextArea的方法。 问题是,即使我使用每个方法调用都更新了文本区域,它实际上并没有更新,直到mouseclick中的所有内容都已运行。
这可能需要一段时间才能完成所有工作,我希望每次调用都能看到文本区域更新,而不必等到一切完成为止
public void mouseClicked(MouseEvent e) {
DataCollector dc = new DataCollector();
dataCollected.append("Begining Test...\n\n");
dataCollected.append("Collecting System Information... \n\n");
dataCollected.append(dc.getSystem());
... lots more like this...
}
它实际上不会更新,直到mouseclick中的所有内容都已运行。
完全正确。 您的mouseClicked
方法在GUI线程上被调用,并且该线程是唯一更新GUI的线程。 因此,在mouseClicked
方法完成后,将执行“更新文本区域内容”操作。 因此,在GUI线程上运行的方法应运行得非常快,以便其他要在GUI线程上运行的方法也可以这样做。
您可以启动一个与常规代码并行运行的新线程,这将更新您的JTextArea。 阅读课程:Swing的并发性,了解如何在Swing中使用线程(以及“事件调度线程”是什么)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.