Petit probleme ajustement Box dans BorderLayout
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:
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); |