Je développe actuellement un jeu en 2D en java et j'ai un problème avec un JLayeredPane.

J'ai un objet composé de plusieurs images superposées que je crée grâce à un JLayeredPane. J'ajoute ensuite ce JLayeredPane à un autre JLayeredPane qui contient l'ensemble de mes éléments graphiques.

J'ai alors une erreur de type IllegalArgument qu'eclipse relève.

Le plus étrange c'est que je peux parfois créer 15 de ces objets sans que ca ne plante, et parfois je vais en créer 2 et ça va me faire l'erreur.

Voici le bout de code qui crée mon/mes objets :

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
JLabel jeton = new JLabel(new ImageIcon("images/bases/"+element+"_m"+mouvement+"_p"+rotation+".png"));
	jeton.setPreferredSize(new Dimension(50,50));
	jeton.setBounds(posX, posY, 50, 50);
	JLabel jeton_pdv = new JLabel(new ImageIcon("images/vie/vie_0"+vie_jeton+".png"));
	jeton_pdv.setPreferredSize(new Dimension(50,50));
	jeton_pdv.setBounds(posX, posY, 50, 50);
	JLabel jeton_att1 = new JLabel(new ImageIcon("images/attaque/att_0"+att1+"_p"+rotation1+".png"));	
	jeton_att1.setPreferredSize(new Dimension(50,50));
	jeton_att1.setBounds(posX, posY, 50, 50);
	JLabel jeton_att2 = new JLabel(new ImageIcon("images/attaque/att_0"+att2+"_p"+rotation3+".png"));
	jeton_att2.setPreferredSize(new Dimension(50,50));
	jeton_att2.setBounds(posX, posY, 50, 50);
	JLabel jeton_def1 = new JLabel(new ImageIcon("images/defense/def_0"+def1+"_p"+rotation2+".png"));
	jeton_def1.setPreferredSize(new Dimension(50,50));
	jeton_def1.setBounds(posX, posY, 50, 50);
	JLabel jeton_def2 = new JLabel(new ImageIcon("images/defense/def_0"+def2+"_p"+rotation4+".png"));
	jeton_def2.setPreferredSize(new Dimension(50,50));
	jeton_def2.setBounds(posX, posY, 50, 50);
	JLabel filtre = new JLabel(new ImageIcon("images/filtre.png"));
	filtre.setPreferredSize(new Dimension(50,50));
	filtre.setBounds(posX, posY, 50, 50);
 
	//Eclipse me trouve "parfois" une erreur dans une des 6 lignes ci-dessous
// Ce n'est jamais la même ligne qui est en cause.
 
	this.combat.plateau.couches_jeton.add(jeton, new Integer(3));
	this.combat.plateau.couches_jeton.add(jeton_pdv, new Integer(4));
	this.combat.plateau.couches_jeton.add(jeton_att1, new Integer(5));
	this.combat.plateau.couches_jeton.add(jeton_att2, new Integer(6));
	this.combat.plateau.couches_jeton.add(jeton_def1, new Integer(7));
	this.combat.plateau.couches_jeton.add(jeton_def2, new Integer(8));
Et voici celui où j'ajoute le Pane à mon JLayeredPane principal :

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
		couches_jeton = new JLayeredPane();
		couches_jeton.setPreferredSize(new Dimension(1024,768));
		couches_jeton.setBounds(0, 0, 1024, 768);
		couches_jeton.setDoubleBuffered(true);
		
		
		
		couches = new JLayeredPane();		
		couches.add(fond,new Integer(0));
		couches.add(cache, new Integer(5));
		couches.add(deroulant, new Integer(1));
		couches.add(deroulant_infos, new Integer(1));
		couches.add(ecriture, new Integer(1));
		couches.add(envoyer_texte, new Integer(1));
		couches.add(couches_jeton, new Integer(2));
		couches.add(zone_dessus, new Integer(10));
		couches.add(compte_tour, new Integer(2));
		couches.add(jauge_de_pose, new Integer(1));
		
		
		Container contentpane = f.getContentPane();
		contentpane.add(couches);
Si quelqu'un pouvait m'aider ce serait chouette. Pour moi, il semble logique qu'un JLayeredPane puisse en contenir un autre (d'autant plus que mon code me donne bien l'affichage voulu).

Peut-être que je n'utilise pas correctement ce composant?

Merci de votre aide.