Bonjour,
Je désire faire une grille de JButton dans un GridLayout 8 par 8. Cependant il semble y avoir un petit problème d'affichage.
J'ai 2 classes: Main (l'interface graphique), et Case (JButton redéfinit afin d'y entrer des coordonnées X Y).
Main.java
Case.java
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 import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; public class Main extends JFrame { JPanel panelGrille; public Main() { Container c = this.getContentPane(); panelGrille = new JPanel(new GridLayout(8,2)); c.add(panelGrille); genererBoutons(); } public void genererBoutons() { int i = 1; int j = 1; while (i <= 8) { while (j <= 8) { panelGrille.add(new Case(i, j)); j++; } j = 1; i++; } } public static void main(String[] args) { Main monApp = new Main(); monApp.setSize(600,600); monApp.setTitle("Jeux d'échec - Hugo Bédard & Chhunly Prum"); monApp.show(); } }
Tous les boutons s'affiche un par dessus l'autre dans la première case de mon GridLayout. (Voir Attachement). Si quelqu'un peu m'aider et me lancer sur une piste, ce serait très apprécié.
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 import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; public class Case extends JButton { int x = 0; int y = 0; public Case(int xTemp, int yTemp) { setX(xTemp); setY(yTemp); setText("A"); addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("X:" + x + "Y:" + y); } } ); } public void setX(int xTemp) { x = xTemp; } public void setY(int yTemp) { y = yTemp; } public int getX() { return x; } public int getY() { return y; } }
Partager