我想执行一个线程,它应该在特定的时间间隔后得到一些结果。现在我想在JTextArea
. 如何从线程进行事件JTextArea
?
问问题
267 次
1 回答
2
这取决于你如何建立你的后台任务。
如果您使用的是普通的Thread
or Runnable
,则需要在事件调度线程 (ETD) 上触发一个事件,以确保您对 UI 所做的任何更改都发生在 EDT 中。
Swing 提供了一种简单的机制,允许您将 a 排入Runnable
事件队列,其run
方法将在 EDT 中执行。
// Inside you thread...
// Some block action...
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// Executing within the EDT...
}
});
看一眼
一个更简单的解决方案可能是使用 aSwingWorker
而不是 plain Thread
。这将允许您对方法内的工作人员的完成采取行动done
(在 EDT 内为您执行)
看一眼
于 2012-10-14T22:26:20.517 回答