【发布时间】:2010-08-18 01:09:14
【问题描述】:
我有一个构建我的 UI 的父类(目前基本上只是一个文本框)。我创建了一个辅助类,它创建了一个新线程,我需要能够从新线程更新父类上的文本框。我尝试的一切都会引发错误。我假设我需要创建某种调度程序,但我的背景是 C#,我对如何在 Java 中做到这一点并不是 100% 熟悉。
我的最新迭代将父类的对象传递给辅助类中的静态方法,该方法最终通过实例化辅助类的对象(其中包含 run() 方法)来创建新线程。我在辅助对象中有一个构造函数,它期望从父类传入的对象,当传入时,设置我在父类的成员部分中贴花的属性。当我尝试在 run() 方法中访问该成员以更新父类上的文本框时,出现错误。
次要类基本上是这样的:
public class SecondaryClass extends Thread {
private ParentClass pc = null;
public SecondaryClass(ParentClass PC){
pc = PC;
}
public static void StartThread(ParentClass pC){
Thread thread = new SecondaryClass(pC);
thread.start();
}
public void run() {
pc.myTextBox.append("something");
}
}
我还尝试在父类上创建一个公共方法,该方法接受一个字符串作为它的唯一参数,并从辅助类的 run() 中调用该方法并在那里传递“somethign”。父类上的方法更新相同的文本框,但那里也有问题。
谁能提供一些关于我需要做什么才能跨这些线程访问 UI 元素的见解?
【问题讨论】:
标签: java multithreading