0
我想执行一个线程,它应该在特定的时间间隔后得到一些结果。现在我想在JTextArea
中显示结果。如何从线程JTextArea
做一个事件?线程结果显示在文本区域
我想执行一个线程,它应该在特定的时间间隔后得到一些结果。现在我想在JTextArea
中显示结果。如何从线程JTextArea
做一个事件?线程结果显示在文本区域
这取决于你如何建立你的后台任务。
如果您使用的是普通的Thread
或Runnable
,则需要将事件触发到事件派发线程(ETD)上,以确保您对UI所做的任何更改都发生在EDT中。
Swing提供了一个简单的机制,允许您将Runnable
排入事件队列,其中的run
方法将在EDT中执行。
// Inside you thread...
// Some block action...
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// Executing within the EDT...
}
});
看看
一个简单的办法可能是使用一个SwingWorker
,而不是一个简单的Thread
。这将允许你在done
方法采取内的工人完成的动作(这是你的EDT内执行)
在
看看
看看[这个问题](http://stackoverflow.com/questions/2710712/output-to-jtextarea-in-realtime),这也将解决您的问题。 –