web-dev-qa-db-fra.com

Comment aligner tous les éléments à gauche dans JPanel?

J'aimerais que tous les éléments de mon JPanel soient alignés à gauche. J'essaie de le faire de la manière suivante:

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.setAlignmentX(Component.LEFT_ALIGNMENT);

En conséquence, Java utilise le côté gauche de tous les éléments comme position de l'élément, puis place tous les éléments au centre (partie non gauche) de JPanel.

38
Roman

Le moyen le plus simple que j'ai trouvé de placer des objets sur la gauche est d'utiliser FlowLayout.

JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));

ajouter un composant normalement à ce panneau le placera à gauche

89
Chris

Vous devez utiliser setAlignmentX(..) sur les composants que vous souhaitez aligner et non sur le conteneur qui les contient.

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(c1);
panel.add(c2);

c1.setAlignmentX(Component.LEFT_ALIGNMENT);
c2.setAlignmentX(Component.LEFT_ALIGNMENT);
12
Jack

Ma méthode préférée serait la méthode BorderLayout. Voici les cinq exemples avec chaque position dans laquelle le composant pourrait entrer. L'exemple est pour si le composant était un bouton. Nous allons l'ajouter à un JPanel, p. Le bouton s'appellera b.

//To align it to the left
p.add(b, BorderLayout.WEST);

//To align it to the right
p.add(b, BorderLayout.EAST);

//To align it at the top
p.add(b, BorderLayout.NORTH);

//To align it to the bottom
p.add(b, BorderLayout.SOUTH);

//To align it to the center
p.add(b, BorderLayout.CENTER);

N'oubliez pas de l'importer également en tapant:

import Java.awt.BorderLayout;

Il existe également d’autres méthodes dans la classe BorderLayout impliquant des éléments tels que l’orientation, mais vous pouvez faire vos propres recherches à ce sujet si vous êtes curieux à ce sujet. J'espère que cela a aidé!

0
user3696866