意见建议:
- 为GUI类提供一个公共方法,
public void appendText(String text)
该方法将文本String附加到Jtextarea。 - 希望将文本追加到Jtextarea的任何外部类仅需要对具有此方法的类进行有效的引用,然后调用它。
- 必须注意确保仅在Swing事件线程EDT上调用此方法。
- 因为你会从一个代码长期运行位这样做,你会想这样做长时间运行的代码 关闭 Swing事件线程。SwingWorker将为此很好地工作。Google并学习该教程,因为它将非常有用。
- 你应该考虑具体使用
SwingWorker<Void, String>
和使用发布/处理方法对从服务器到Jtextarea中发送字符串,秋千上 é 通风口 d ispatch 牛逼 hread或EDT。 - *_如上代码所示, _ *切勿 有空的catch块
catch (IOException e) {}。这相当于闭眼驾驶摩托车。是的,乍一看似乎很有趣,但是它几乎总是结局很差。
编辑
您的状态:
“如果如您所说仅适合在EDT上运行它,那么如何在已经运行的线程中定义它呢?”
我知道两种方式:
- 将SwingWorker用于后台线程,并为此使用publish / process方法对。检查SwingWorker教程,因为那里对此有很好的描述,或者
- 使用标准的后台线程,并将所有Swing调用放入传递给该
SwingUtilities.invokeLater(...)
方法的Runnable内。



