bonjour, je suis en trains de faire un petit programme permettant un lancer de dés aléatoire.

Mon problème est assez difficile a expliquer alors je vous propose de le tester par vous même, en fait le programme permet de choisir le nombre de dés a lancer, puis affiche ces dés via une image JPG propre a chacune des faces dans un ou plusieurs JLabel(ImageIcon).
Mais, ces images Ne s'affichent qu'après réduction puis réouverture de la JFrame ou après un click sur un des boutons permettant de choisir le nombre de dés a lancer...je subodore les "heu, tu veux dire quoi la ?".

bref voila le code, moi j'ai retourner le probleme dans tout les sens, je vois pas comment en venir a bout, peut être avec Graphics2D en appelant redraw() ? :

//////////////////////////////////////////////////////////////////////////////////////////////////

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
package boiteade;
 
import java.util.Random;
 
public class MainBoiteDe {
 
 
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		Frame f = new Frame();
	}
 
}
/////////////////////////////////////////////////////////////////////////////////////////////////////

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
package boiteade;
 
 
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
 
import javax.swing.ImageIcon;
 
public class Calculs {
 
	List<Integer> arrayDE = new ArrayList<>();
	int nbrDE;
 
	List<ImageIcon> arrayImg = new  ArrayList<>();
 
	public void lancerDe(){
		List<Integer> upArrayDE = new ArrayList<>();
		Random rand = new Random();
		for (int i = 0; i < nbrDE; i++) {
			int a = rand.nextInt(7-1)+1;
			upArrayDE.add(a);
		}
		arrayDE = upArrayDE;
	}//////////   END OF lancerDE()		//////////////
 
	public void returnImg(){
		ImageIcon temporyImg = new ImageIcon();
		for (int i = 0; i < arrayDE.size(); i++) {
			switch (arrayDE.get(i)) {
			case 1:
				temporyImg = new ImageIcon("de_1.jpg");
				break;
			case 2 :
				temporyImg = new ImageIcon("de_2.jpg");
				break;
			case 3 :
				temporyImg = new ImageIcon("de_3.jpg");
				break;
			case 4 :
				temporyImg = new ImageIcon("de_4.jpg");
				break;
			case 5 :
				temporyImg = new ImageIcon("de_5.jpg");
				break;
			case 6 :
				temporyImg = new ImageIcon("de_6.jpg");
				break;	
			default:
				break;
			}
			arrayImg.add(temporyImg);
		}
		System.out.println(arrayImg);
	}
 
}
###########################################################################
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
 
package boiteade;
 
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.PasswordAuthentication;
 
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class Frame extends JFrame {	
 
	////	ACCES CLASSES	////
	Calculs calc = new Calculs();
 
	////	DIM FENETRE		////
	int x = getToolkit().getScreenSize().width;
	int y = getToolkit().getScreenSize().height;
	Dimension dimEcran = new Dimension(x,y/2);
 
	////	CONTENEUR PRINCIPALE	////
	JPanel PanPrincipale = new JPanel();
 
	////	CONTENEUR PANNEAUX DE	////
	JPanel conteneurPansDE = new JPanel();
 
 
	////	PANNEAU CHOIX NBR DE	////
	JPanel panSelectNbrDE = new JPanel();
		JButton boutonMoinsPanSelect = new JButton("-");			
		JButton boutonPlusPanSelect = new JButton("+");				
		JLabel labNbrDE = new JLabel();								
		Dimension dimBoutonPanSelect = new Dimension(50, 50);		
 
	////	PANNEAU BOUTON LANCER	////
	JPanel panLancer = new JPanel();
	JButton boutonLancer = new JButton("lancer !");
	Dimension dimPanLancer = new Dimension(x/2, 70);
 
	////	Affichage resultat		/////
	JPanel contneurResult;
	JLabel labImg;
	ImageIcon img = new ImageIcon("de_1.jpg");
 
 
 
	public Frame(){
		this.setTitle("Boite a dés");
		this.setSize(dimEcran);
 
			panSelectNbrDE.setBackground(Color.gray);
				boutonMoinsPanSelect.setPreferredSize(dimBoutonPanSelect);
					boutonMoinsPanSelect.setEnabled(false);
					boutonMoinsPanSelect.addActionListener(new  listenerBoutonsPlusMoins());
				boutonPlusPanSelect.setPreferredSize(dimBoutonPanSelect);
					boutonPlusPanSelect.addActionListener(new listenerBoutonsPlusMoins());
				labNbrDE.setPreferredSize(new Dimension(80, 50));
				labNbrDE.setBorder(BorderFactory.createLineBorder(Color.white));
				labNbrDE.setBackground(Color.white);
				labNbrDE.setOpaque(true);	
			panSelectNbrDE.add(boutonMoinsPanSelect);
			panSelectNbrDE.add(labNbrDE);
			panSelectNbrDE.add(boutonPlusPanSelect);
 
			panLancer.setBackground(Color.gray);
			panLancer.setPreferredSize(dimPanLancer);	
				boutonLancer.setPreferredSize(new Dimension(100, 50));
				boutonLancer.addActionListener(new listenerBoutonLancer());
			panLancer.add(boutonLancer);
 
			conteneurPansDE.setLayout(new GridLayout(2, 1));
			conteneurPansDE.add(panSelectNbrDE);
			conteneurPansDE.add(boutonLancer);
 
		PanPrincipale.add(conteneurPansDE);
		this.setContentPane(PanPrincipale);
		this.setVisible(true);
	}
 
 
	class listenerBoutonsPlusMoins implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			// TODO ecoute boutons
			if(e.getSource().equals(boutonMoinsPanSelect)){
				calc.nbrDE--;
				labNbrDE.setText(""+calc.nbrDE);
			}else{
				calc.nbrDE++;
				labNbrDE.setText(""+calc.nbrDE);
			}
 
			if(calc.nbrDE > 0){
				boutonMoinsPanSelect.setEnabled(true);
			}else{
				boutonMoinsPanSelect.setEnabled(false);
			}
		}
	}//////////////		END OF CLASS	//////////
 
	class listenerBoutonLancer implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			calc.lancerDe();
			calc.returnImg();
				calc.arrayDE.clear();
				calc.arrayImg.clear();
		}
	}///////////	END OF CLASS	///////////////
 
 
}