Mettre à jour l'interface utilisateur de la classe mère sur différents fils de la classe secondaire

voix
0

J'ai une classe mère qui construit mon interface utilisateur (fondamentalement juste une zone de texte au moment). J'ai créé une classe secondaire qui crée un nouveau thread et je dois être en mesure de mettre à jour la zone de texte sur la classe parente du nouveau thread. Tout ce que j'essaie renvoie des erreurs. Je suppose que je dois créer une sorte de régulateur, mais mon expérience est C # et je ne suis pas 100% au courant sur la façon de le faire en Java.

Ma dernière itération passe l'objet de la classe parente à une méthode statique dans le secondaire qui crée finalement le nouveau thread par instanciation d'un objet pour la classe secondaire (méthode qui a la course () à l'intérieur). J'ai un constructeur dans l'objet secondaire qui attend le passé dans l'objet de la classe parente qui, lorsqu'il est passé dans, définit une propriété que j'ai decalred dans ma section membre de la classe parente. lorsque je tente d'accéder à ce membre dans la méthode run () pour mettre à jour une zone de texte sur la classe parente, je reçois une erreur.

Essentiellement la classe secondaire ressemble à ceci:

        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);
    }
}

J'ai aussi essayé de créer une méthode publique sur la classe parent qui accepte une chaîne comme il est seul argument et appeler cette méthode à partir de run () de la classe secondaire et le passage « somethign » là-bas. La méthode de la classe parente met à jour la même zone de texte, mais ayant des problèmes là-bas aussi.

quelqu'un peut-il s'il vous plaît donner un aperçu de ce que je dois faire pour accéder à des éléments d'interface à travers ces discussions?

Créé 17/08/2010 à 17:08
source utilisateur
Dans d'autres langues...                            


1 réponses

Créé 17/08/2010 à 17:25
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more