2010-08-17 58 views
0

我有一个父类,建立我的用户界面(现在基本上只是一个文本框)。我创建了一个创建新线程的辅助类,并且我需要能够从新线程更新父类的文本框。我所尝试的一切都会引发错误。我假设我需要创建某种调度程序,但我的背景是C#,并且我不太熟悉如何在Java中执行此操作。从父类中更新从不同的线程从二级类的UI

我最近的迭代将父类的对象传递给辅助类中的一个静态方法,该辅助类通过为辅助类(里面有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"); 
    } 
} 

我也试着创建接受字符串父类的公共方法,因为它是唯一的参数,并调用该方法从运行中()在中学阶段,并在那里传递“一些东西”。父类上的方法更新相同的文本框,但也存在问题。

任何人都可以请提供一些见解,我需要做什么来访问跨这些线程的UI元素?

回答

0
+0

YoK,谢谢你的回应。我实际上是为Android设备编写的。我不确定Swing或AWT是否适用于Android,但我认为它没有。有没有我可以使用的调度方法,而不是使用swing包? – Kyle 2010-08-17 17:02:51

+0

@Kyle它应该被support.added链接到类似的问题回答。 – YoK 2010-08-17 17:10:21

+0

我刚刚确认。不幸的是,在Android开发中不支持swing。我会将你的回答标记为答案,因为你确实提供了我原来的问题的充分答案(不知道它是为了android)。我发现这篇文章可能会帮助我解决我的Android开发问题:http://www.ibm.com/developerworks/library/x-gourmetandroid/index.html?ca=dgr-lnxw97DalvikJavadth-JV – Kyle 2010-08-17 17:26:16