从辅助类的不同线程上的父类更新UI

时间:2010-08-17 16:08:32

标签: java multithreading

我有一个构建我的UI的父类(目前基本上只是一个文本框)。我创建了一个创建新线程的辅助类,我需要能够从新线程更新父类的文本框。我尝试的一切都会引发错误。我假设我需要创建某种调度程序,但我的背景是C#,而且我不是100%熟悉如何在Java中执行此操作。

我的最新迭代将父类的对象传递给辅助中的静态方法,该方法最终通过实例化辅助类(其中包含run()方法)的对象来创建新线程。我在辅助对象中有一个构造函数,它期望来自父类的传入对象,当传入时,它设置我在父类的成员部分中已经decalred的属性。当我尝试在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元素?

1 个答案:

答案 0 :(得分:0)