Une classe JProgressBar réutilisable
Bonjour,
Je suis sur un problème depuis plusieurs jours, et après avoir essayer plusieurs méthodes qui marchent mais ne me satisfassent pas entièrement, je me tourne vers vous !
Mon but : avoir une classe qui étends JFrame, qui contiennent une JProgressBar et un JTextArea et surtout, surtout, qui soit réutilisable !
Ce que j'ai fait :
- une classe qui créé ma Jframe et qui contient des méthodes de setTitle, setTxtAppend pour mettre à jour le JTxtArea, setProgress pour mettre à jour la JProgressBar ... etc.
- une action (boucle) lancée depuis l'EDT qui met à jour la JProgressBar selon la méthode définie ci-dessus.
Avant ce que je faisais, c'était un update(getGraphics) sur ma JFrame pour mettre à jour la progressbar, ce qui marchait très bien, jusqu' à ce que je m'aperçoive que ça me rallongeai considérablement mon temps de traitement.
J'ai donc essayé le SwingWorker, qui est génial mais qui ne me sert à rien puisque de toute manière je dois attendre la fin de mon traitement pour continuer. J'ai essayé des SwingUtilities.invokelater dans tous les sens, même des invokenadwait, mais rien n'y fait : pas de mise à jour.
En fait, j'obtiens ce que je veux en faisant un progressbar.update(progressbar.getGraphics) mais le résultat est un peu "sale" : la barre clignote et ce n'est pas beau du tout (évidemment car en fait dans ce cas j'update la barre à chaque itérations)
Donc ce que je ne comprends pas, c'est que je mets bien à jour ma progressbar dans l'edt puisque j'y suis (test à l'appui ;)), mais la barre ne se mets pas à jour, et je suis obligé de passer par un update(getGraphics) soit de la barre, soit de la frame qui contient la barre ( d'ailleurs c'est idem pour le panel qui contient la barre ! où l JRootPane qui contient le panel qui contient ... bref, vous avez compris ;))