AWT de Java | Clase BoxLayout

La clase BoxLayout se utiliza para organizar los componentes verticalmente (a lo largo del eje Y) u horizontalmente (a lo largo del eje X). En la clase BoxLayout, los componentes se colocan en una sola fila o en una sola columna. Los componentes no se ajustarán, por lo que, por ejemplo, una disposición horizontal de componentes permanecerá dispuesta horizontalmente cuando se cambie el tamaño del marco.

Constructor de la clase:

  • BoxLayout(Container c, int axis): crea una clase BoxLayout que organiza los componentes con el eje X o el eje Y.

Métodos comúnmente utilizados:

  • addLayoutComponent(Component cmp, Object obj): No es utilizado por esta clase.
  • getLayoutAlignmentX(Container con): Devuelve la alineación a lo largo del eje X del contenedor.
  • getLayoutAlignmentY(Container con): Devuelve la alineación a lo largo del eje Y del contenedor.
  • maximumLayoutSize(Container con): devuelve las dimensiones máximas que el contenedor de destino puede usar para diseñar los componentes que contiene.
  • minimalLayoutSize(Container con): Devuelve las dimensiones mínimas necesarias para diseñar los componentes contenidos en el contenedor de destino especificado.
  • removeLayoutComponent(Componente cmp): No es utilizado por esta clase.
  • layoutContainer(Container tar): Llamado por el AWT cuando el contenedor especificado necesita ser diseñado.

Los siguientes programas ilustran la clase BoxLayout:

  • Programa 1: En el siguiente programa, estamos organizando varios componentes JLabel en un JFrame . Creamos 1 componente JPanel llamado «Panel» y 5 componentes JButton llamados » jbtn1 « , » jbtn2 «, » jbtn3 «, » jbtn4 «, » jbtn5 «. Además, estamos creando un componente BoxLayout llamado «boxlayout» y una clase JFrame y luego los agregamos al JFrame usando el método add() . Establecemos la visibilidad del marco usando el método setvisible() . El diseño se establece usandométodo setLayout() .

    // Java program to demonstrate BoxLayout 
    // class along X-Axis
    import javax.swing.JFrame;
    import javax.swing.JButton;
    import javax.swing.BoxLayout;
    import javax.swing.Box;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import java.awt.Insets;
    import java.awt.Dimension;
      
    // taking a class Demo
    public class Demo {
      
        // Main Method
        public static void main(String[] args)
        {
      
            // Function to set up the window frame.
            JFrame.setDefaultLookAndFeelDecorated(true);
      
            // Creating Object of "JFrame" class
            JFrame frame = new JFrame("BoxLayout Example X_AXIS");
      
            // Declaration of objects of JButton class.
            JButton jbtn1, jbtn2, jbtn3, jbtn4, jbtn5;
      
            // Function to set the default
            // close operation of JFrame the.
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
            // Set the panel to add buttons
            JPanel panel = new JPanel();
      
            // Creating Object of "boxlayout" in 
            // X_Axis from left to right
            BoxLayout boxlayout = new BoxLayout(panel, BoxLayout.X_AXIS);
      
            // to set the box layout
            panel.setLayout(boxlayout);
      
            // Set border for the panel
            panel.setBorder(new EmptyBorder(new Insets(100, 150, 100, 150)));
      
            // Initialization of object "jb1" of JButton class.
            jbtn1 = new JButton("Button 1");
      
            // Initialization of object "jb2" of JButton class.
            jbtn2 = new JButton("Button 2");
      
            // Initialization of object "jb3" of JButton class.
            jbtn3 = new JButton("Button 3");
      
            // Initialization of object "jb4" of JButton class.
            jbtn4 = new JButton("Button 4");
      
            // Initialization of object "jb5" of JButton class.
            jbtn5 = new JButton("Button 5");
      
            // Adding JButton "jb1" on JFrame
            panel.add(jbtn1);
      
            // Adding JButton "jb2" on JFrame
            panel.add(jbtn2);
      
            // Adding JButton "jb3" on JFrame
            panel.add(jbtn3);
      
            // Adding JButton "jb4" on JFrame
            panel.add(jbtn4);
      
            // Adding JButton "jb5" on JFrame
            panel.add(jbtn5);
      
            // Function to set the panel  of JFrame.
            frame.add(panel);
      
            // Function to use the  pack of JFrame.
            frame.pack();
      
            // Function to set visible status of JFrame.
            frame.setVisible(true);
        }
    }

    Producción:

  • Programa 2: El siguiente programa organiza los componentes a lo largo de Y-AXIS en un JFrame. Creamos 1 componente JPanel llamado «Panel» , 5 componentes JButton llamados » jbtn1 « , » jbtn2 «, » jbtn3 «, » jbtn4 «, » jbtn5 «, un componente BoxLayout llamado «boxlayout» y una clase JFrame y luego los agregamos al JFrame usando el método add() . Estableceremos la visibilidad del marco usando el método setvisible() . El diseño se establece mediante el método setLayout() .

    // Java program to demonstrate BoxLayout 
    // class along Y-Axis
    import javax.swing.JFrame;
    import javax.swing.JButton;
    import javax.swing.BoxLayout;
    import javax.swing.Box;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import java.awt.Insets;
    import java.awt.Dimension;
      
    // construct a class Demo_1
    public class Demo_1 {
      
        // Main Method
        public static void main(String[] args)
        {
      
            // Function to set up the window frame.
            JFrame.setDefaultLookAndFeelDecorated(true);
      
            // Creating Object of "JFrame" class
            JFrame frame = new JFrame("BoxLayout Example Y_AXIS");
      
            // Declaration of objects of JButton class.
            JButton jbtn1, jbtn2, jbtn3, jbtn4, jbtn5;
      
            // Function to set the default close operation of JFrame the.
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
            // Set the panel to add buttons
            JPanel panel = new JPanel();
      
            // Creating Object of "boxlayout" in Y_Axis from top to down
            BoxLayout boxlayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
      
            // to set the box layout
            panel.setLayout(boxlayout);
      
            // Set border for the panel
            panel.setBorder(new EmptyBorder(new Insets(100, 150, 100, 150)));
      
            // Initialization of object "jb1" of JButton class.
            jbtn1 = new JButton("Button 1");
      
            // Initialization of object "jb2" of JButton class.
            jbtn2 = new JButton("Button 2");
      
            // Initialization of object "jb3" of JButton class.
            jbtn3 = new JButton("Button 3");
      
            // Initialization of object "jb4" of JButton class.
            jbtn4 = new JButton("Button 4");
      
            // Initialization of object "jb5" of JButton class.
            jbtn5 = new JButton("Button 5");
      
            // Adding JButton "jb1" on JFrame
            panel.add(jbtn1);
      
            // Adding JButton "jb2" on JFrame
            panel.add(jbtn2);
      
            // Adding JButton "jb3" on JFrame
            panel.add(jbtn3);
      
            // Adding JButton "jb4" on JFrame
            panel.add(jbtn4);
      
            // Adding JButton "jb5" on JFrame
            panel.add(jbtn5);
      
            // Function to set the panel  of JFrame.
            frame.add(panel);
      
            // Function to use the  pack of JFrame.
            frame.pack();
      
            // Function to set visible status of JFrame.
            frame.setVisible(true);
        }
    }

    Producción:

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea. Utilice un compilador fuera de línea.

Referencia: https://docs.oracle.com/javase/7/docs/api/javax/swing/BoxLayout.html

Publicación traducida automáticamente

Artículo escrito por Shivi_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *