Thread

Résolu
simo_azzaoui Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 21 septembre 2006 - 20 sept. 2006 à 23:11
simo_azzaoui Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 21 septembre 2006 - 21 sept. 2006 à 20:35
bonjour , g besoin d'aide sur une affaire de thread , voilà , g une classe qui herite de la classe thread , ma classe et une classe ki dessine des ballons , je voudrais les faire deplacer automatiquement ds la fenetre ,
alors g redefinit la methode run , le probleme ki se pose , c ke mes ballons font tous la mem chose , la mem sequence de mouvement , pouvez vous me conseiller ? merci

7 réponses

simo_azzaoui Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 21 septembre 2006
21 sept. 2006 à 20:35
alors voilà , j'ai resolu le probleme com suit :
au lieu que ma classe balle herite de la classe thread , g crée une autre classe qui va gérer le mouvement des balle et c'est elle qui herite de la classe thread . je lui passe ds son constructeur un ArrayList des balles que g crée ds le Main et voici le code de la méthode run .
public void run()
 { int i,j;
        Balle r;
        while(true)
        {i=Rand_i.nextInt(list.size());
         j=Rand_j.nextInt(3); 
         r=(Balle)list.get(i);
         switch(j)
                {
          case 0: {r.avancer(10);break;}
          case 1: {r.droite(45);break;}
          case 2: {r.gauche(45);break;}
     
       }
   r.avancer(10);
        try{this.sleep(100);}
        catch(Exception e){}
       
        }
       
    }

Voilà , j'espere que cela sera utile a kelk'1 , merci de votre aide
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 sept. 2006 à 07:39
Utilise la classe Random afin de donner de l'aléatoire à tes mouvements.
0
simo_azzaoui Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 21 septembre 2006
21 sept. 2006 à 08:35
en effet , j'ai utilisé la classe Random au sein de ma méthode run comme suit :
mais comme je l'ai précedemment dis , ttes mes instances font la meme chose , que me conseillez vous ?




 public void run()
 { int i;
  
        try {
         while(true)             {
                        switch(i=Rand.nextInt(3))
                {
          case 0: {this.avancer(10);break;}
          case 1: {this.droite(45);break;}
          case 2: {this.gauche(45);break;}
     
       }
             //System.out.println(i);
                this.avancer(10);
                this.sleep(1000);
               
                }
               
            }
         catch (Exception exception) {
            exception.printStackTrace();
        }
       
    }
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 sept. 2006 à 08:49
Essaye plutôt ceci, ce sera déjà plus aléatoire :

 public void run()
 { int i;
     this.avancer(10);
     this.droite(Rand.nextInt(45);
     this.gauche(Rand.nextInt(45);
     this.sleep(1000);
    }
     
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
simo_azzaoui Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 21 septembre 2006
21 sept. 2006 à 08:56
g essayer , tjs le meme probleme , ce pourrait-il que le probleme soit , dans la classe main qui crée les instances ?
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
21 sept. 2006 à 10:49
fais voir comment tu construit tes thread dans le main
0
simo_azzaoui Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 21 septembre 2006
21 sept. 2006 à 12:17
voila , lorque je click sur le bouton , voici le code qui s'execute :


void proc_click()
 { 
  
  ball1 = new Balle(feuille,"balle1",200,400,"Thread_balle1");//constructeur où on passe une feuille de dessin , c une de mes 
                                                                                          //classes , puis le nom de l'objet , 2 int pour les coordonnées , et le 
                                                                                          //nom du thread .

  ball2 = new Balle(feuille,"balle2",150,400,"Thread_balle2");
  ball3 = new Balle(feuille,"balle3",100,400,"Thread_balle3");
  feuille.drawIt();
  while (true)
  {ball1.start();
  ball2.start();
  ball3.start();
  }
 
}
0
Rejoignez-nous