bonjour,

mon probleme est le suivant:
j'ai une jframe (FennetrePrincipale) dans laquelle j'ai mis une bare de menu. dans ce menu j'ai mis le menu item suivant qui me permet d'ouvrir un jdialog :
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
 
    private javax.swing.JMenuItem getJMenuItem() {
        if (jMenuItem == null) {
            jMenuItem = new javax.swing.JMenuItem();
            jMenuItem.setText("Inserer les non codifiés");
            jMenuItem.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    EcrireStatNonCodifFr esnc = new EcrireStatNonCodifFr();
                    esnc.setVisible(true);
                    esnc.insertData(listeDeTousLesProduits);
                    esnc.setVisible(false);
                }
            });
        }
        return jMenuItem;
    }

ce jdialog lance un traitement dont j'aimerais visualiser l'avancement par une progress bar.

voici le code du jdialog :

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
 
public class EcrireStatNonCodifFr extends JDialog {
	private javax.swing.JPanel jContentPane = null;
 
	private JTextField jTextField = null;
	private JProgressBar jProgressBar = null;
	private JTextField jTextField1 = null;
	public EcrireStatNonCodifFr(Frame toto) {
        super(FennetrePrincipale.getInstance());
        initialize();
    }
 
	/**
         * This is the default constructor
         */
    public EcrireStatNonCodifFr() {
        super();
        initialize();
    }
 
	/**
         * This method initializes this
         * 
         * @return void
         */
 
    private void initialize() {
        this.setSize(266, 89);
        this.setContentPane(getJContentPane());
        this.setLocationRelativeTo(FennetrePrincipale.getInstance());
    }
	/**
         * This method initializes jContentPane
         * 
         * @return javax.swing.JPanel
         */
	private javax.swing.JPanel getJContentPane() {
		if(jContentPane == null) {
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(new java.awt.BorderLayout());
			jContentPane.add(getJTextField(), java.awt.BorderLayout.SOUTH);
			jContentPane.add(getJProgressBar(), java.awt.BorderLayout.CENTER);
			jContentPane.add(getJTextField1(), java.awt.BorderLayout.NORTH);
		}
		return jContentPane;
	}
 
 
    public void insertData(List produitsNonCodifié) {
        GestionDB monGestionDB = GestionDB.getInstance();
        monGestionDB.connect();
        PreparedStatement monPreparedStatement = monGestionDB.getPrepare(LectureParametre.getString("RequettePourAjouterLesProsuitsNonCodifie"));
        int max = produitsNonCodifié.size();
 
        getJProgressBar().setValue(0);
        getJProgressBar().setStringPainted(true);
        getJProgressBar().setMaximum(max);
        getJTextField1().setText("Insersion des enregistrements...");
        setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        setVisible(true);
        for (int i = 0; i < max; i++) {
            getJProgressBar().setValue(i);
            Produit monProduit = (Produit) produitsNonCodifié.get(i);
            if (!monProduit.estReconnu && monProduit.raisonPourLaquelleNonReconnu.equals("NonCodifié")) {
                String nompro = monProduit.proSousFamille + "/" + monProduit.proDiam1 + "\"/" + monProduit.proSteelGrade;
                try {
                    monPreparedStatement.setString(1, monProduit.proCode);
                    monPreparedStatement.setString(2, "EXPORT");
                    monPreparedStatement.setString(3, monProduit.proFamille);
                    monPreparedStatement.setString(4, monProduit.proSousFamille);
                    monPreparedStatement.setString(5, monProduit.proSousSousFamille);
                    monPreparedStatement.setString(6, nompro);
                    monPreparedStatement.setString(7, monProduit.proSteelGrade);
                    monPreparedStatement.setString(8, " ");
                    monPreparedStatement.setString(9, monProduit.proNormDim);
                    monPreparedStatement.setString(10, monProduit.proDiam1);
                    monPreparedStatement.setString(11, monProduit.proDiam2);
                    monPreparedStatement.setString(12, monProduit.proRating);
                    monPreparedStatement.setString(13, monProduit.proSch1);
                    monPreparedStatement.setString(14, monProduit.proSch2);
                    monPreparedStatement.setString(15, monProduit.Construction);
                    monPreparedStatement.setString(16, monProduit.Finition);
                    monPreparedStatement.setString(17, monProduit.proFace);
                    monPreparedStatement.setString(18, monProduit.Coating);
                    monPreparedStatement.setString(19, monProduit.Ends);
                    monPreparedStatement.setString(20, " ");
                    monPreparedStatement.setString(21, monProduit.Spec);
                    monPreparedStatement.setString(22, " ");
                    monPreparedStatement.setLong(23, 1);
                    monPreparedStatement.setString(24, ConstantHandler.SIMP_DAT_FORM_GNX.format(new java.util.Date()));
                    monPreparedStatement.setString(25, monProduit.CodeStock);
                    monPreparedStatement.setString(26, monProduit.LibelleOriginal);
                    monPreparedStatement.executeUpdate();
                } catch (SQLException e) {
                    Logger.getLogger(LoggerNames.DEFAULT).log(Level.WARNING, "Un probleme est survenu durant l\'insertion dans la table des non-codifie", e);
                    return;
                }
            }
        }
        monGestionDB.disconnect();
        monGestionDB = null;
        //turn off the wait cursor
        setCursor(null);
 
        //myProgressBar.setVisible(false);
    }
	/**
         * This method initializes jTextField   
         *      
         * @return javax.swing.JTextField       
         */    
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
		}
		return jTextField;
	}
	/**
         * This method initializes jProgressBar 
         *      
         * @return javax.swing.JProgressBar     
         */    
	private JProgressBar getJProgressBar() {
		if (jProgressBar == null) {
			jProgressBar = new JProgressBar();
		}
		return jProgressBar;
	}
	/**
         * This method initializes jTextField1  
         *      
         * @return javax.swing.JTextField       
         */    
	private JTextField getJTextField1() {
		if (jTextField1 == null) {
			jTextField1 = new JTextField();
		}
		return jTextField1;
	}
   }
au fait lorsque je clik sur le menu qui lance ma progress bar le boutton reste enfoncé, il se libere lorsque le tratement et terminé mais entre temps le jdialog est rester vide.
si j'enleve le setvisible(false) le contenu de ma jdialog s'affiche une fois le traitement terminer