JtextArea更新问题没有实时更新
我目前正在编写一个应用程序,它在点击鼠标时运行几个更新JtextArea的方法。问题是即使我用每个方法调用更新文本区域,它实际上并没有更新,直到mouseclick中的所有内容都已经运行。JtextArea更新问题没有实时更新
这可能需要相当长的一段时间来贯穿所有内容,我希望看到每次调用,而不是等到一切都做
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...
}
回答:
它实际上并没有更新,直到一切都在鼠标点击已运行文本区更新。
这是完全正确的。您的mouseClicked
方法在GUI线程上调用,并且此线程是更新GUI的唯一线程。因此,在您的mouseClicked
方法结束后,您的“更新textarea内容”操作将执行。因此,在GUI线程上运行的方法应该运行得非常快,所以其他想要在GUI线程上运行的方法可以这样做。
您可以启动一个与您的普通代码并行运行的新线程,它将更新您的JTextArea。阅读Lesson: Concurrency in Swing,了解如何使用swing中的线程(以及“Event Dispatch Thread”)。
以上是 JtextArea更新问题没有实时更新 的全部内容, 来源链接: utcz.com/qa/259859.html