-3

我想用 java 中的 swingworkerclass 在循环中附加文本。例如:

while(true)
{
     mytextarea.append("sometext");
     if(some_condition)
     {break;}
}

我想要这个和 swingworker 一起使用,因为我想看到 textarea 上的每一个更新。对于此代码,我仅在我的过程完成后才能看到更新。

我不希望在其他情况下使用 swingworker 样本。请在这里给我一些代码。谢谢。

4

1 回答 1

0

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

于 2012-08-16T07:30:45.273 回答