J'ai un soucis que je ne parviens en aucun cas à expliquer. Considerons trois classes :
Maitre (mon programme en gros)
Interface (gestion de l'interface graphique)
Test (classe main)
Dans le constructeur de ma classe Maitre j'instancie un bouton à qui je definis un addActionListener, avec dedans un truc bateau : j'execute une fonction qu'on va appeller jouer().
Mon projet est une simulation et la fonction jouer() fait enchainer les "tours de jeu" dans un while. A la fin de chaque tour de jeu j'appelle un repaint() sur mon Interface pour pour visualiser les changements.
Je pense que plusieurs d'entre vous ont deja eut ce type de projet à faire dans leur jeunes années.
Le soucis c'est que quand je clique sur le bouton, la simulation se met bien en route comme prévu (calculs etcs), mais toute mon interface graphique se fige ?!
Pourtant j'appelle bien un repaint() à chaque étape de la simulation, mais son rôle, son contenu ne s'execute plus : une balise témoin dans le paintComponent de mon interface n'apparait plus.
Car ce qui est bizarre c'est que quand je lance cette fonction jouer() via la classe Test (main) :
Maitre m = new Maitre();
m.jouer();
Bah... les repaints se font sans soucis, ma balise en témoigne et de toute manière mon affichage se met à jour... Merci pour vos lumières.
PS : j'ai un autre soucis marginal, à chaque repaint mon interface graphique devient de plus en plus flou. Il y a une espèce de "décalage" qui se fait, donnant lieu à une espèce de dégradé progressif imcompréhensible ?
Partager