Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2208 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  problème d'affichage dans un thread différent du main

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème d'affichage dans un thread différent du main

n°1691584
barbarius8​8
alleeeeer rouuuuule
Posté le 24-02-2008 à 18:39:23  profilanswer
 

salut,
 
je suis pas vraiment sur que mon titre soit le mieux mais je vais vous exposer mon problème :
 
je suis étudiant et j'ai un tp en java qui doit m'apprendre à me servir des thread :sol: . en faite c'est juste une histoire de déplacement de figure dans un affichage : si on effectue plein de petit déplacement dans le même thread que le main et qu'on lui demande l'affichage il n'affichera que le résultat :cry: ; mais si on sépare les petits déplacements dans un autre thread, on devrait voire tous les petits déplacements :love: .
j'arrive à faire les dépacements dans le thread du main (il n'affiche que le résultat :wahoo: ), j'arrive à faire les déplacements dans l'autre thread (j'utilise netbean et je vois que je suis bien dans un nouveau thread lors des déplacements grâce au debugueur) mais au lieu de m'afficher les déplacements il n'affiche que le résultat :heink:  :cry: .  
 
voilà ma classe qui utilise le thread:
 

Code :
  1. package graphic;
  2. public class Behavior extends Thread{
  3.    
  4.     private Shape shape;  //shape est la figure que je dois afficher
  5.    
  6.     public Behavior(Shape shape){
  7.         this.shape=shape;
  8.     }
  9.     public void move(int dx, int dy){
  10.         this.dx=dx;
  11.         this.dy=dy;
  12.         start();   //démarrage du nouveau thread
  13.     }
  14.    
  15.     public void run(){
  16.         int x=shape.getX();
  17.         java.util.List<Surface> list =shape.getListSurface();  //il peut y avoir plusieurs panel d'affichage dans la même fenêtre->on doit modifier toutes les surfaces
  18.         while(shape.getX()!=x+dx){
  19.             shape.setX(shape.getX()+1);   //déplacement de l'objet jusqu'à x+dx par pas de 1 pixel
  20.             for(Surface s: list)     //on affiche le déplacement qu'on vient de faire
  21.                 s.repaint();
  22.         }
  23.     }
  24.        
  25.     private int dx;
  26.     private int dy;
  27. }


 
si j'ai bien compris le principe d'un thread :??: , normalement c'est une partie du programme qui s'exécute en parallèle au programme main :heink: . donc normalement je devrait voire les déplacements lorsque j'utilise le mode pas à pas du debugueur mais il faut que j'attende la fin du thread  :fou: (donc la fin de tous les déplacement  :cry: ). ne faudrait il pas mieux mettre la boucle while dans la fonction move et ce serait dans le while qu'on fait l'affichage :??: ?? l'affichage ce ferait pendant qu'on calcul la position suivante, non :??: ??

mood
Publicité
Posté le 24-02-2008 à 18:39:23  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  problème d'affichage dans un thread différent du main

 

Sujets relatifs
probleme input textproblème Java ME client web service
Probleme de regx avec un format dateproblème avec les conditions IF et les sessions
Problème avec Hyperlinks.Follow[MySql] problème de décimales
Code HTML différent selon l'heureProblème pour la gestion d'un club sportif
Probleme avec guillemet-apostrophes doubles ”Problème avec les accents
Plus de sujets relatifs à : problème d'affichage dans un thread différent du main


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR