Peut on définir la largeur d'un FlowLayout ? [Résolu]

Signaler
Messages postés
50
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
7 mai 2019
-
Messages postés
50
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
7 mai 2019
-
J'ai décidé de positionner des composants (JCombo, Jtextpane) avec un flowlayout. J'ai défini la taille de mon flowlayout.

je souhaite positionner mon flowlayout avec un gridbaglayout.
Malheureusement, la taille du flowlayout n'est pas pris en considération. Le flowlayout est sur toute la largeur de la frame. Une idée ? Merci.



public static void addComponentsToPane (Container pane)
{
if (RIGHT_TO_LEFT) {
pane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
}
Dimension tailleMoniteur2 = Toolkit.getDefaultToolkit().getScreenSize();
int longeurCell1 = tailleMoniteur2.width / 3 ;

Panel panneau = new Panel(new FlowLayout());
panneau.setBackground(Color.green);
panneau.setSize(longeurCell1, tailleMoniteur2.height);

.....

pane.setBackground(Color.red);
pane.setSize(longeurCell1, hauteurCell1);
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.FIRST_LINE_START;
c.insets = new Insets(5,10,0,10); //top padding Insets(int top, int left, int bottom, int right)
c.weightx = 1;
c.weighty = 1;
c.gridx = 0;
c.gridy = 0;

pane.add(panneau,c);

2 réponses

Messages postés
16334
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
10 mai 2021
118
Bonjour,

En général quand on commence à manipuler des Layout c'est pour avoir des tailles dynamiques, pas pour les fixer, même si on peut bien sûr faire un mix des deux...

Ici tu pourrais mettre un Panel dans ton GridBagLayout, le Panel va prendre toute la place, mais tu lui défini un Layout null pour lui ajouter ton FlowLayout à la taille que tu veux.
Messages postés
50
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
7 mai 2019

Super, merci KX
Voici le code ci-dessous pour les intéressés :



Panel positionGauche = new Panel() ;
positionGauche.setLayout(null);

pane.setBackground(Color.red);
pane.setSize(longeurCell1, tailleMoniteur2.height);
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.FIRST_LINE_START;
c.insets = new Insets(5,10,0,10); //top padding Insets(int top, int left, int bottom, int right)
c.weightx = 1;
c.weighty = 1;
c.gridx = 0;
c.gridy = 0;
positionGauche.add(panneau);
pane.add(positionGauche,c);