Problème avec la méthode sleep(long) de Thread

Signaler
Messages postés
5
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
4 juin 2005
-
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
-
Marc

Bonjour à tous,
j'essaie de faire bouger un pion manière agréable et donc avec les différentes positions occupées pas le pion depuis son point de départ jusqu'à son point d'arrivée. Le problème est que lorsque j'appelle la méthode sleep sur mon thread, la pose est faite entre chaque position mais je ne vois pas le pion bouger de place. Je ne vois le pion uniquement que lorsqu'il est arrivé à destination. Voici le bout de code qui est censé faire tout ça mais qui ne marche pas.

Quelqu'un peut-il m'aider ?

for (x=x1;x<=x2;x ++){
y=(int)Math.floor(yflt);
yflt+=pente;
try{Thread.sleep(10);}catch(InterruptedException ie){}
p.setLocation(x,y);
p.setVisible(true);

}

Ici p est un JLabel affichant l'image d'un pion ...

Au fait, le problème ne viendrait-il pas du fait que l'en-tête du run de mon thread soit : public void run (MouseEvent e) { ...}
et non pas public void run (){...} ?

Ou bien à cause du fait que la méthode deplacePion qui fait bouger le pion n'est pas la méthode run (elle y fait appel)?

help ...

2 réponses

Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
6
le fait que la méthode soit pas la même que run dérange absolument rien

par contre que la méthode run soit pas exactement pareil, pourrais être la cause. mais je peut pas vraiment te dire sasn tester

as tu regardé s'il faisait le code ??? en mode pas à pas ???

tu pourrais regarder mon projet "Jeu de shooting" qui prend le même rpinciple déplacer des jlabel dasn un thread. Par contre, moi j'utilise Runnable et non thread, masi ça reviens presqu'au même.
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
6
ah oui, un conseil, fait comme j,ai fait dasn mon projet de prendre le temps du processeur avant pour le soustraire au sleep, ça va éviter que l,annimation soit lente sur des processeur peu puissant ou si tu fasi beaucoup d'annimation en même temps

par contre, ça se pourrasi tu que ton annimation soittrop rapide ??? puisque 10 mili-seconde, c'est pas beaucoup. peut-être il le déplace, masi trop rapidement pour que tu le voies