Bonjour,
Comme de nombreuses personnes avant moi, je cherche à afficher un JProgressBar pour un traitement assez long.
Pour cela j'ai créé une classe permettant d'afficher une petite fenêtre avec mon JProgressBar à l'intérieur.
Lors de mes premiers essais, ne connaissant pas le SwingWorker et n'étant pas du tout à l'aise avec l'EDT, cette fenêtre s'affichait mais sans rien à l'intérieur : problème de gèle dû au traitement.
Maintenant, avec l'utilisation d'un SwingUtilities.invokeLater() ma fenêtre s'affiche correctement mais le JProgressBar n'est pas mise à jour au fur est à mesure du traitement.
Voilà en gros le code utilisé.
Une idée du problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public class monPanel extends JPanel{ MaClassePourLeJProgressBar maFrameDeProgression; public monPanel(int param){ //Instanciation de ma fenêtre affichant le JProgressBar maFrameDeProgression = new MaClassePourLeJProgressBar(); //le gros traitement en question SwingUtilities.invokeLater(new Runnable(){ public void run() { init(); } }); } public void init(){ //J'effectue des traitements unTraitement(); //A chaque étapes terminées je souhaite mettre à jour mon JProgressBar //Par exemple ici je lui indique 25% terminés maFrameDeProgression.miseAjour(25); //==>Probléme, le JprogressBar affiché n'est pas MAJ } }
Merci.
Partager