Bonjour,

j'essaie depuis quelques jours maintenant de faire apparaître une jframe au clic d'un bouton dans laquelle s'affiche une progressbar pour faire patienter l'utilisateur, le temps de l'exécution d'une requete et de l'affichage de la "page" suivante.

j'affiche bien la jframe mais la progress bar à l'intérieur s'affiche qu'une fois l'execution de la requete et l'affichage fait et elle se charge...

j'ai lu plein de chose, mais j'ai du mal à comprendre l'utilisation de l'EDT et de SwingWorker...

voici ma classe pour la progress bar :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package interfac;
 
import java.awt.*;
import javax.swing.*;
 
public class progression {
 
    JProgressBar progress;
    Thread monThread;
    int rappidite;
    JFrame cadre;
 
    public void go(int rappid) {
        rappidite = rappid;
        // Création de l'interface
        cadre = new JFrame("En cours de chargement");
        JPanel panneau = new JPanel();
        progress = new JProgressBar(0, 100);
        panneau.add("Center", progress);
        cadre.getContentPane().add(BorderLayout.CENTER, panneau);
        cadre.setSize(275, 85);
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        cadre.setLocation(
                (screenSize.width - cadre.getWidth()) / 2,
                (screenSize.height - cadre.getHeight()) / 2);
        cadre.setVisible(true);
        cadre.setResizable(false);
        cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // Création de thread
        monThread = new Thread(new MonRunnable());
        monThread.start();
 
    }
 
    public class MonRunnable implements Runnable {
 
        public void run() {
            for (int j = 1; j < 100; j++) // on fait une boucle pour que la JProgressBar "avance"
            {
                progress.setValue(j);
                try {
                    Thread.sleep(rappidite);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            cadre.dispose(); //on ferme le cadre (le chergement est fini!)
 
        }
    }
}
et le morceaux de code que j'execute au début de l'actionperfomed de mon button
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
private void jButtonConectarseConnectionActionPerformed(java.awt.event.ActionEvent evt) {                                                            
    //connecter l'utilisateur
    progression progress = new progression();
    progress.go(12);
merci pour votre aide qui sera surement d'un grand secours !