• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

JtextArea更新问题没有实时更新

java 来源:The Cypher 6次浏览

我目前正在编写一个应用程序,它在点击鼠标时运行几个更新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”)。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)