Salut tous le monde,
En fait j'ai dans ma fenetre un gridlayout et je veux mettre des boutons d'une classe que j'ai cree qui herite de JButton.
Quand je met des JButton normaux ca me met les boutons bien dans chaque case de mon gridlayout.
Mais quand je veux y mettre des boutons de ma classe ca me met le premier mais pas les autres. Par contre quand je passe la sourie dans la fenetre, l'icone (ImageIcon) du bouton change et affiche celui des autres boutons (qui eux ne sont pas ajoutes a la fenetre 8O
Voici un screen avec des JButton normaux:
http://img210.imageshack.us/img210/3869/fenxh3.th.jpg
Et voici un screen avec les bouton de ma classe:
http://img177.imageshack.us/img177/5624/fenhy5.th.jpg
La classe qui cree la fenetre (les parties en commentaire correspondent aux partie utilisant les JButton normaux):
La classe de mes boutons:Code:
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 public class RoadsGui extends JFrame{ /** * */ private static final long serialVersionUID = 1L; //JButton[] B_Grid; RoadBit[] allBits; int i,j; //Creates the road bits window public RoadsGui() throws HeadlessException { super(); this.setLayout(new GridLayout(6,2)); //B_Grid = new JButton[12]; allBits = new RoadBit[12]; this.initRoadBitsTable(); for (i=0; i<12; i++) { //B_Grid[i] = new JButton(); //B_Grid[i].setIcon(allBits[i].getIcon()); //B_Grid[i].setDisabledIcon(allBits[i].getIcon()); //B_Grid[i].setEnabled(false); //add(B_Grid[i]); add(allBits[i]); } } //Initialise the road bits window public void initRoadBitsTable() { allBits[0] = new RoadBit(1100,0,0); allBits[1] = new RoadBit(11,0,0); allBits[2] = new RoadBit(110,0,0); allBits[3] = new RoadBit(1001,0,0); allBits[4] = new RoadBit(1010,0,0); allBits[5] = new RoadBit(101,0,0); allBits[6] = new RoadBit(1011,0,0); allBits[7] = new RoadBit(1110,0,0); allBits[8] = new RoadBit(1101,0,0); allBits[9] = new RoadBit(111,0,0); allBits[10] = new RoadBit(1111,0,0); allBits[11] = new RoadBit(0,0,0); } ...
Code:
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 public class RoadBit extends JButton{ /** * */ private static final long serialVersionUID = 1L; //private ImageIcon icon; private boolean N, W, S, E; private int code; //Stands for NWSE with 1=true 0=false private int x, y; public RoadBit(int code, int x, int y) { super(); this.code = code; this.x = x; this.y = y; //Depending on its code we will initialise differently the road bit switch (code){ //DownRight case 1100: this.setIcon(new ImageIcon("URL/DownRight.jpg")); this.N=true; this.W=true; this.S=false; this.W=false; break; //RightDown 0011 case 11: etc...