Comment ajouter des marges dans un BoxLayout

Résolu/Fermé
0nn0bello006 Messages postés 8 Date d'inscription jeudi 13 avril 2017 Statut Membre Dernière intervention 3 mai 2017 - 2 mai 2017 à 16:16
0nn0bello006 Messages postés 8 Date d'inscription jeudi 13 avril 2017 Statut Membre Dernière intervention 3 mai 2017 - 3 mai 2017 à 09:15
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

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 2 mai 2017 à 17:10
Quelque chose comme :
LigneCalendrier.add(tabLbJour[CmptJour]);
LigneCalendrier.add(Box.createRigidArea(new Dimension(5,0)));

?
0
0nn0bello006 Messages postés 8 Date d'inscription jeudi 13 avril 2017 Statut Membre Dernière intervention 3 mai 2017
3 mai 2017 à 08:45
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > 0nn0bello006 Messages postés 8 Date d'inscription jeudi 13 avril 2017 Statut Membre Dernière intervention 3 mai 2017
3 mai 2017 à 09:12
"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 jeudi 13 avril 2017 Statut Membre Dernière intervention 3 mai 2017 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
3 mai 2017 à 09:15
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