Comment ajouter des marges dans un BoxLayout

Résolu
Bonjour,

Je débute en Java mais pas en programmation.

Je bataille depuis 2 heures, je cherche à ajouter des espaces entre mes JLabel que j'ai placé dans des BoxLayout.

voir code ci-dessous

package gui;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.util.Calendar;

public class Calendrier extends JPanel
{
private final String[] TAB_JOUR = {"lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"};
private JLabel[] tabLbJour = new JLabel[TAB_JOUR.length];

public Calendrier()
{
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
this.setBackground(Color.lightGray);
JPanel LigneCalendrier=new JPanel();

LigneCalendrier.setLayout(new BoxLayout(LigneCalendrier, BoxLayout.LINE_AXIS));

for(int CmptJour=0;CmptJour<TAB_JOUR.length;CmptJour++)
{
tabLbJour[CmptJour]=new JLabel(TAB_JOUR[CmptJour]);

LigneCalendrier.add(tabLbJour[CmptJour]);

}

for(int CmptJour=1;CmptJour<32;CmptJour++)
{
System.out.println(CmptJour % 7);
if(CmptJour % 7==1)
{
this.add(LigneCalendrier);
LigneCalendrier=new JPanel();
LigneCalendrier.setLayout(new BoxLayout(LigneCalendrier, BoxLayout.LINE_AXIS));

}
LigneCalendrier.add(new JLabel(String.valueOf(CmptJour)));
}
this.add(LigneCalendrier);
this.setVisible(true);
}
}


Je ne veux pas utiliser de GridLayout, et aimerai pouvoir ajouter des espaces entre mes JLabel et que chacune de mes lignes de JLabel soit de même largeur.

En vous remerciant :)

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Quelque chose comme :
    LigneCalendrier.add(tabLbJour[CmptJour]);
    LigneCalendrier.add(Box.createRigidArea(new Dimension(5,0)));

    ?
    1. Parfait merci! :)

      Voilà pourquoi je déteste Java. La redimension des JLabel aurait été plus judicieux et logique mais lorsqu'on redéfini leur taille, rien ne change (vive Java!!)

      Merci pour votre aide
    2. @KXMerci beaucoup! Je ne connaissais pas du tout!
      Je vais me renseigner sur Java FX et balancer Swing et co à la trappe car c'est une horreur.

      Merci beaucoup