Bonjour,

J'ai voulu faire un dialogue d'attente (cad avec un message et un JProgressBar, le tout sur une image de fond), et je me heurte au probleme suivant: quand j'instancie ma classe, le dialogue s'affiche, mais quand je fais appel au stepIt() ou au setMessage(), rien ne se passe, les éléments d'affichage (JLabel et JProgressBar) ne bougent pas. Quelqu'un aurait une idée de pourquoi?

source:
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
 
package interfaces;
 
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
import java.io.*;
import javax.imageio.*;
 
 
/** Classe créant un dialogue d'attente contenant une JProgressBar,
 * ainsi qu'un JLabel détaillant les étapes en cours
 **/
public class DialogueAttente extends JFrame
{
	// JLabel d'affichage de message
	public JLabel message = new JLabel("Attente...");
	//Barre de progression
	public JProgressBar barre = new JProgressBar();
	//Panel avec fond d'image
	public MonPanelAvecFond panel;
 
	public DialogueAttente(int taille)
	{
		barre = new JProgressBar(0, taille);
		panel = new MonPanelAvecFond(barre, message);
		add(panel);
		setSize(305, 325);
		setAlwaysOnTop(true);
	}
 
	// Pour passer a l'etape suivante
	public void stepIt()
	{
		panel.stepIt();
	}
 
	//Pour changer le message du JLabel
	public void setMessage(String nouveau)
	{
		panel.setMessage(nouveau);
	}
 
	//Classe permettant de generer un JPanel avec un image en fond
	private class MonPanelAvecFond extends JPanel
	{
		public JLabel message = new JLabel();
		public JProgressBar barre = new JProgressBar();
 
		public MonPanelAvecFond(JProgressBar barre, JLabel message)
		{
			super();
			this.message = message;
			this.barre = barre;
			GridBagLayout layout = new GridBagLayout();
			GridBagConstraints contraintes = new GridBagConstraints(1, 1, 1, 1, 10.0, 10.0,
													GridBagConstraints.CENTER, 
													GridBagConstraints.NONE,
													new Insets(10, 10, 10, 10),
													0, 0);
			layout.setConstraints(message, contraintes);
			contraintes.gridy++;
			layout.setConstraints(barre, contraintes);
			setLayout(layout);
			add(message);
			add(barre);
			setSize(fond.getIconHeight(), fond.getIconWidth());
		}
 
		public void paintComponent(Graphics g) 
		{
			super.paintComponent(g);
			try 
			{
				BufferedImage image = ImageIO.read(new File("images/fond.jpg"));
				g.drawImage(image, 0, 0, null);
			} 
			catch (IOException e) 
			{
				e.printStackTrace();
			}
		}
 
		//Passage a l'etape suivante
		public void stepIt()
		{
			barre.setValue((barre.getValue())+1);
		}
 
		//Changement de message
		public void setMessage(String nouveau)
		{
			message.setText(nouveau);
		}
	}
}