Bonjour à tous,
Je sais que c'est un problème récurrent, très récurrent, mais malgré toutes mes recherches sur Google et sur ce forum, je n'ai pas réussi à régler mon problème : mettre à jour l'affichage de ma JFrame, ou éventuellement d'un Component, à l'interieur d'une boucle for.
Pour simplifier, je prend un exemple simple : J'ai une fenetre avec 2 JButton : un bouton A et un bouton C. En cliquant sur le bouton A, le bouton C change de couleur, à l'aide d'une fonction changeCol(). Ici pas de problème, tout marche comme je le souhaite.
En revanche, je voudrai pouvoir, à l'interieur d'une boucle for, exécuter 1000 fois ma fonction changeCol(). J'ai fait la chose suivante : (fenetre représente ma JFrame)
Cela ne fonctionne pas, ça me rafraichit l'affichage uniquement à la fin des 1000 itérations. Ne fonctionne pas non plus en remplacant validate() par repaint()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(int i = 0;i<1000;i++){ changeCol(); fenetre.validate(); }
Je précise que dans ma fonction changeCol(), j'ai ajouté des instructions à forte complexité, afin de ralentir l'exécution de la fonction et pouvoir ainsi suivre l'avancement de l'exécution.
J'espère que vous arriverez à comprendre ce que je raconte... Je joins à ce message le fichier .java, au cas où quelqu'un aurait le courage de se plonger dedans.
Merci d'avance pour vos réponses.
Partager