Bonjour,
je suis étudiant en seconde année de licence info, et j'ai un projet à faire.
Je dois faire un damier. Le code est correcte, mais pour les cases du bord de damier, j'aimerais mettre une bordure. Chaque case est un bouton. je met donc une image dans les boutons, mais l'image ne fait pas toute la taille du bouton, ce qui est très gênant.
J'ai u certain forum sur le même problème, mais sans aboutissement.
Voila le code que j'ai trouvé, et amélioré :
Le résultat est visible en pièce jointe.
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 import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.*; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.*; public class Damier extends JFrame { private JButton bouton3; int largeur = 10; int longeur = 10; int taille = 50; JButton [][]tab=new JButton[largeur][longeur]; Container cont=getContentPane(); public Damier(){ // Propriétés de la fenêtre setTitle("Jetons foux par défaut"); setSize(600,600); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p1 = new JPanel(); p1.setLayout(new GridLayout(largeur,longeur)); // Le GridLayout permet de créer une grille dans laquelle on placera des composants graphiques : ici des JPanel Insets emptyInsets = new Insets(0,0,0,0); for(int i=0;i<=(largeur-1);i++) for(int j=0;j<=(longeur-1);j++){ tab[i][j]=new JButton(); p1.add(tab[i][j]); // On place le panel contenu dans tab[i][j] dans le panel p1. // Tous les panels du tableau tab seront de même taille grace au GridLayout tab[i][j].setPreferredSize(new Dimension(taille,taille)); } // On change la couleur des panels du tableau tab for(int i=0; i<(largeur);i++) for(int j=0; j<(longeur);j++){ if (i==0 || j==0||i==largeur-1||j==longeur-1){ bouton3 = new JButton (new ImageIcon(getClass().getClassLoader().getResource("image/bordure.png"))); bouton3.setMargin(emptyInsets); bouton3.setBorder(null); //Le bouton présente toujours une marge. tab[i][j].add(bouton3, p1); }else{ if(((i+j)%2)==0) tab[i][j].setBackground(Color.black); else tab[i][j].setBackground(Color.white); } } cont.add(p1); // On place p1 dans un Container } public static void main(String[] args) { Damier damier = new Damier(); damier.setVisible(true); } }
Comment puis-je enlever cette marge ?
Cordialement
Partager