vertical gridlayout gridbag fillers borderlayout java alignment jpanel

java - gridlayout - ¿Cómo puedo alinear todos los elementos a la izquierda en JPanel?



java gridbag (3)

Debe usar setAlignmentX(..) en los componentes que desea alinear, no en el contenedor que los tiene ..

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);

Me gustaría tener todos los elementos en mi JPanel alineados a la izquierda. Intento hacerlo de la siguiente manera:

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

Como resultado, Java usa el lado izquierdo de todos los elementos como una posición del elemento y luego pone todos los elementos en el centro (no parte izquierda) del JPanel.


La forma más fácil que he encontrado para colocar objetos a la izquierda es usar FlowLayout.

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

agregar un componente normalmente a este panel lo colocará a la izquierda


Mi método favorito para usar sería el método BorderLayout. Aquí están los cinco ejemplos con cada posición en la que podría entrar el componente. El ejemplo es para si el componente fuera un botón. Lo agregaremos a un JPanel, p. El botón se llamará 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);

No olvide importarlo también escribiendo:

import java.awt.BorderLayout;

También hay otros métodos en la clase BorderLayout que incluyen cosas como la orientación, pero puede hacer su propia investigación sobre eso si tiene curiosidad sobre eso. Espero que esto haya ayudado!