我有一個父類,建立我的用戶界面(現在基本上只是一個文本框)。我創建了一個創建新線程的輔助類,並且我需要能夠從新線程更新父類的文本框。我所嘗試的一切都會引發錯誤。我假設我需要創建某種調度程序,但我的背景是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元素?
YoK,謝謝你的迴應。我實際上是爲Android設備編寫的。我不確定Swing或AWT是否適用於Android,但我認爲它沒有。有沒有我可以使用的調度方法,而不是使用swing包? – Kyle 2010-08-17 17:02:51
@Kyle它應該被support.added鏈接到類似的問題回答。 – YoK 2010-08-17 17:10:21
我剛剛確認。不幸的是,在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