bonjour à tous .
voilà mon problème .... je dois associer à une valeur de "force d'un personnage", une image , et pour de futurs fonctionnalitées je dois en fait afficher des boutons... pour cela je crée une classe BoutonImage
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
public class BoutonImage extends JButton {
	private String adresseImage;
	private String name;
	private Image img;
	public BoutonImage(String str){
		super(str);
		this.adresseImage= str;
		try {
		img = ImageIO.read (new File(str));
		} catch (IOException e) {
		e.printStackTrace();
		}
		}
 
 
		public void paintComponent(Graphics g){
		Graphics2D g2d = (Graphics2D)g;
 
		g2d .drawImage(img, 0, 0, this.getWidth(),
		this.getHeight(), this);
 
		}
				}
mes valeurs de forces sont compris entre 1 et 6 dans un tableau... valeurs prises aléatoirement bien sur pour compliqué le tout....
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
public void affichagemonstre(){
	int lower = 1; 
	int higher = 6; 
 
 
	int nombremonstres = (int)(Math.random() * (higher+1-lower)) + lower;
 
	int[] force = new int[nombremonstres]; 	System.out.println("il y a "+nombremonstres+"monstres");
 
 
 
		 for (int i = 0; i < nombremonstres; i++)
		 {
		 int max = 0;
		 do
		 {
		 force[ i ] = (int)(Math.random() * (higher+1-lower)) + lower;
		 max = 0;
		 for( int n_force = i - 1 ; n_force >= 0 ; --n_force )
		 {
		 if( force[ n_force ] == force[ i ] ) { ++max; }
		 } 
		 } while( max > i );
		 System.out.println("monstre n°"+nombremonstres+",force niveau"+force[i]);
		}
pour l'instant il n'y a pas de problèmes... donc pour afficher plusieurs BoutonImages en fonctions des valeurs de force[] je définit un tbleau de BoutonImage comme tel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public BoutonImage monster;
 public BoutonImage monster2;
 public BoutonImage monster3;
 public BoutonImage monster4;
 public BoutonImage monster5;
 public BoutonImage monster6;
 public BoutonImage[]monser1={monster,monster2,monster3,monster4,monster5,monster6};
puis je continue dans la méthode affichagemonstre avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int decal=0;/*mes Bouton sont situés sur une ligne définie par y=115
ils sont sur une image de plateau donc je dois les décaler d'une valeur x à chaque fois*/
 
		for(int j=0;j<force.length;j++){	
			getContentPane().setLayout(null);
			MonstresImages(force[j],monser1[j]);
 
		BoutonImage b=monser1[j];
		b.setBounds (610+decal,115,75,75); 
		add(b);
			this.setVisible(true);	
			decal=decal+75;
 
		}}
et voici la méthode MonstresImages:
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
public void MonstresImages(int a,BoutonImage b){
	if (a==1){
 
		 b=new BoutonImage("troll.gif");
 
 
					b.setBorder(null);
					//perso.addActionListener(new Bouton11Listener());
 
	}
if (a==3){
 
	b=new BoutonImage("foret(lv3).gif");
 
 
				b.setBorder(null);
				//perso.addActionListener(new Bouton11Listener());
 
	}
if (a==4){
	getContentPane().setLayout(null);
	 b=new BoutonImage("foret(lv2).gif");
 
				b.setBorder(null);
				//perso.addActionListener(new Bouton11Listener());
}
if (a==5){
	getContentPane().setLayout(null);
	 b=new BoutonImage("foret(lv4).gif");
 
				b.setBorder(null);
				//perso.addActionListener(new Bouton11Listener());
 
}
if (a==6){
	getContentPane().setLayout(null);
	b=new BoutonImage("foret(lv5).gif");
 
				b.setBorder(null);
				//perso.addActionListener(new Bouton11Listener());
 
}
if (a==2){
	getContentPane().setLayout(null);
	b=new BoutonImage("troll.gif");
 
 
				b.setBorder(null);
				//perso.addActionListener(new Bouton11Listener());
 
}
}
et quand je lance tout ça .... ça me fais plein de jolie lignes d'erreur .... en me surlignant le b.setBounds .... et je ne comprend pas pourquoi, je n'arrive pas non plus à trouver un problème similaire sur internet... pourriez-vous m'éclairer sur le pourquoi du comment ?^^Merci d'avance