我有多个需要写入Java Swing JScrollPane的类和线程。在Android / Eclipse环境中,我使用了android.os.Message。 NetBeans / Windows环境中是否有类似的东西?以下是我要发送消息的地方:
public class PrintStatusTask extends Thread {
PrintStatusTask(String name) {
this.name = name;
}
private void sendMessage(String s) {
// TODO: send message to jTextArea
}
public void run() {
...
sendMessage("Any message");
...
以下是从它所在的JFrame写入JScrollPane的示例:
public class Controller extends javax.swing.JFrame implements Observer {
...
jTextArea.append(s);
...
答案 0 :(得分:2)
如果您正在写入窗格本身(即更改视图上的数据),那么最好的方法是使用swing工作线程,然后再执行它:
SwingUtilities.executeLater(myThread);
(语法可能略有偏离 - 我是从内存中做到的)
答案 1 :(得分:2)
我建议使用aperkins'作为更强大的通用解决方案。
在SwingWorker
的特定情况下:“此方法是线程安全的,尽管大多数Swing方法都不是。”这是从另一个线程使用该方法的简单append()
。