Comment ajouter des marges dans un BoxLayout

Résolu
0nn0bello006 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
0nn0bello006 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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 :)
A voir également:

1 réponse

Felice_ Messages postés 265 Date d'inscription   Statut Membre Dernière intervention   11
 
Quelque chose comme :
LigneCalendrier.add(tabLbJour[CmptJour]);
LigneCalendrier.add(Box.createRigidArea(new Dimension(5,0)));

?
0
0nn0bello006 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > 0nn0bello006 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
"Voilà pourquoi je déteste Java"
En même temps tu parles de classes AWT sorti il y a 20 ans avec le JDK 1.0 !!

Oracle (éditeur de Java) a abandonné AWT/Swing. Pour faire des applications graphiques c'est Java FX qui devrait désormais être utilisé.
Is JavaFX replacing Swing as the new client UI library for Java SE?

Après, si tu tiens absolument à faire du vieux Java...
0
0nn0bello006 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci 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
0