我如何使用swingworker类将文本附加到textarea?
我想在循环中使用swingworkerclass在java中追加文本。 对于前:
while(true) { mytextarea.append("sometext"); if(some_condition) {break;} }
我想和swingworker一起工作,因为我想看看textarea上的每一个uptade。 对于这段代码,我只看到我的过程完成时的更新。
我不想在另一种情况下使用swingworker样品。 请在这里给我一些代码。谢谢。
SwingWorker不在这里。 您的代码未在EDT中运行,因此您看不到更新。 您可以使用SwingUtilities.invokeLater(…)在EDT中执行代码。 但是不要在EDT中执行整个while循环,因为这会阻止它并且没有更新/事件(重绘,鼠标点击)。 这是一个简单的代码示例:
while(true) { SwingUtilities.invokeLater(new Runnable{ public void run() { textfield.setText(....); } }); if(condition) break; }
有关更多信息,请参阅http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html或本书: http : //filthyrichclients.org