Salut,
J'ai une Box horizontale qui contient un nombre variable de boutons que j'ai mise dans un BorderLayout qui couvre toute la JFrame. Mes boutons s'étendent donc de gauche à droite de ma fenetre. Le probleme c'est que lorsque je commence à avoir plus de boutons , il y a un décalage entre le bord droit de ma fenetre et mon dernier boutons(de quelques pixels). Je crois que c'est dû au fait que le BorderLayout donne la même taille à tous mes panels et que si le nombre de pixels de l'écran n'est pas divisible par ce nombre de boutons il y a un décalage. Comment régler le décalage?

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
 Box tempo = Box.createHorizontalBox();
 
            boutonsJoueurs = new JButton[c.getJoueurs().length][3];
            for(int compteur = 0; compteur < c.getJoueurs().length; compteur++)
            {     
          boutonsJoueurs[compteur][0] = new JButton();       
        boutonsJoueurs[compteur][0].setLayout(new BorderLayout());
               boutonsJoueurs[compteur][0].setBackground(Jo.transformeNumeroEnCouleur(tableauJoueurs[compteur].getCouleur()));
 
               EcouteChangementJoueurs actionListener = new EcouteChangementJoueurs();
               boutonsJoueurs[compteur][0].setEnabled(false);
 
               {
                  {
                     JLabel labelTempo = new JLabel(tableauJoueurs[compteur].getNom());
                     labelTempo.setFont(new java.awt.Font("Book Antiqua", 3, 15));
                     labelTempo.setForeground(Jo.getCouleurOpposee(Jo.transformeNumeroEnCouleur(tableauJoueurs[compteur].getCouleur())));
                     boutonsJoueurs[compteur][0].add(labelTempo, BorderLayout.CENTER);
                  }
                  Box tempo2 = Box.createHorizontalBox();
                  {
 
                     tempo2.add(Box.createRigidArea(new Dimension(5, 0)));
                     tempo2.add(new JLabel(""+tableauJoueurs[compteur].getTotalGloire()));
                     tempo2.add(Box.createRigidArea(new Dimension(10, 0)));
                     boutonsJoueurs[compteur][1] = new JButton();
 
                     {
                        JLabel labelTempo = new JLabel("-");
                        labelTempo.setFont(new java.awt.Font("Book Antiqua", 0, 15));
                        labelTempo.setForeground(Color.white);
                        boutonsJoueurs[compteur][1].setBorder(null);
                        boutonsJoueurs[compteur][1].setBackground(Color.black);
                        boutonsJoueurs[compteur][1].setLayout(new BorderLayout());
                        boutonsJoueurs[compteur][1].add(Box.createRigidArea(new Dimension(8, 0)), BorderLayout.WEST);
                        boutonsJoueurs[compteur][1].add(labelTempo, BorderLayout.CENTER);
                        boutonsJoueurs[compteur][1].setMaximumSize(new Dimension(20,20));
                        boutonsJoueurs[compteur][1].addActionListener(actionListener);
                     }
                     tempo2.add(boutonsJoueurs[compteur][1]);
                     tempo2.add(Box.createRigidArea(new Dimension(1, 0)));
 
                     boutonsJoueurs[compteur][2] = new JButton();
                     {
                        JLabel labelTempo = new JLabel("+");
                        labelTempo.setFont(new java.awt.Font("Book Antiqua", 0, 15));
                        labelTempo.setForeground(Color.white);
                        boutonsJoueurs[compteur][2].setBorder(null);
                        boutonsJoueurs[compteur][2].setBackground(Color.black);
                        boutonsJoueurs[compteur][2].setLayout(new BorderLayout());
                        boutonsJoueurs[compteur][2].add(Box.createRigidArea(new Dimension(8, 0)), BorderLayout.WEST);
                        boutonsJoueurs[compteur][2].add(labelTempo, BorderLayout.CENTER);
                        boutonsJoueurs[compteur][2].setMaximumSize(new Dimension(20,20));
                        boutonsJoueurs[compteur][2].addActionListener(actionListener);
                     }
 
                     tempo2.add(boutonsJoueurs[compteur][2]);
                  }
 
                  boutonsJoueurs[compteur][0].add(tempo2, BorderLayout.SOUTH);
               }
 
tempo.add(boutonsJoueurs[compteur][0]);            }
 
            jPanel4.add(tempo, BorderLayout.NORTH);