Skip to content
Related Articles

Related Articles

Java AWT | BoxLayout Class
  • Last Updated : 22 Aug, 2018

The BoxLayout class is used to arrange the components either vertically (along Y-axis) or horizontally (along X-axis). In BoxLayout class, the components are put either in a single row or a single column. The components will not wrap so, for example, a horizontal arrangement of components will stay horizontally arranged when the frame is resized.

Constructor of the class:

  • BoxLayout(Container c, int axis): Creates a BoxLayout class that arranges the components with the X-axis or Y-axis.

Commonly Used Methods:

  • addLayoutComponent(Component cmp, Object obj): It is not used by this class.
  • getLayoutAlignmentX(Container con): Returns the alignment along the X axis for the container.
  • getLayoutAlignmentY(Container con): Returns the alignment along the Y axis for the container.
  • maximumLayoutSize(Container con): Returns the maximum dimensions the target container can use to lay out the components it contains.
  • minimumLayoutSize(Container con): Returns the minimum dimensions needed to lay out the components contained in the specified target container.
  • removeLayoutComponent(Component cmp): It is not used by this class.
  • layoutContainer(Container tar): Called by the AWT when the specified container needs to be laid out.

Below programs illustrate the BoxLayout class:

  • Program 1: In the below program we are arranging several JLabel components in a JFrame. We create 1 JPanel component named “Panel” and 5 JButton components named “jbtn1“, “jbtn2“, “jbtn3“, “jbtn4“, “jbtn5“. Also, we are creating a BoxLayout component named “boxlayout” and one JFrame class and then add them to the JFrame by using add() method. We set the visibility of the frame using setvisible() method. The layout is set using setLayout() method.




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

    Output:




  • Program 2: The following program arranges the components along Y-AXIS in a JFrame. We create 1 JPanel components named “Panel”, 5 JButton components named “jbtn1“, “jbtn2“, “jbtn3“, “jbtn4“, “jbtn5“, a BoxLayout components named “boxlayout” and a one JFrame class and then add them to the JFrame by using add() method. We will set the visibility of the frame by using setvisible() method. The layout is set by using setLayout() method.




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

    Output:


Note: The above programs might not run in an online IDE. Please use an offline compiler.

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

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :