Java AWT | GridLayout Class - GeeksforGeeks

21 Aug, 2018
GridLayout class represents a layout manager with a specified number of rows and columns in a rectangular grid. The GridLayout container is divided into an equal-sized of rectangles, and one of the components is placed in each rectangle. Every rectangle cell has the same size therefore, they contain a component, which fills the entire cell. When the user changes or adjusts the size of the container, the size of each rectangles changes accordingly.
Constructors of the class:
GridLayout(): It Creates a grid layout with a default of one column per component, in a single row.GridLayout(int rw, int cl): It creates a grid layout with the specified number of rows and columns.GridLayout(int rw, int cl, int hgap, int vgap): It creates a grid layout with the specified number of rows and columns with horizontal and vertical gap.
GridLayout(): It Creates a grid layout with a default of one column per component, in a single row.
GridLayout(int rw, int cl): It creates a grid layout with the specified number of rows and columns.
GridLayout(int rw, int cl, int hgap, int vgap): It creates a grid layout with the specified number of rows and columns with horizontal and vertical gap.
Commonly Used Methods:
addLayoutComponent(String str, Component cmp): Adds the specified component with the specified name to the layout.
setColumns(int cl): Sets the number of columns in this layout to the specified value.
setHgap(int hgap): Sets the horizontal gap between components to the specified value.
setRows(int rw): Sets the number of rows in this layout to the specified value.
setVgap(int vgap): Sets the vertical gap between components to the specified value.
layoutContainer(Container pr): Lays out the specified container using this layout.
toString(): Returns the string representation of this grid layout’s values.
Below programs illustrate the GridLayout class:
Program 1: In below program we are passing the argument in GridLayout. We create 4 JLabel components named “one“, “two“, “three“, “four” and create 2 JButton components named “buttonsave” and “buttonexit” and create 4 Jtextfield components named “tname“, “tcode“, “tdesig“, “tsalary” and all of add them to the JFrame by the method add(). We will set the visibility and size of the frame by using setVisible() and setSize() method. The layout is set by using setLayout() method.// Java program to illustrate the GridLayoutimport javax.swing.*;import java.awt.*;  // class GridLayout extends JFramepublic class GridLayoutDemo extends JFrame {  GridLayoutDemo() {      // Creating Object P1 of JPanel class    JPanel p1 = new JPanel();      // set the layout    p1.setLayout(new GridLayout(4, 2));      // Creating Object of "FlowLayout" class    FlowLayout layout = new FlowLayout();      // Creating Object P2 of JPanel class    JPanel p2 = new JPanel();      // set the layout    p2.setLayout(layout);      // Declaration of objects of JLabel class.    JLabel one, two, three, four;      // Declaration of objects of JTextField class.    JTextField tname, tsalary, tcode, tdesig;      // Declaration of objects of JButton class.    JButton buttonSave, buttonExit;      // Initialization of object     // "one" of JLabel class.    one = new JLabel("NAME");      // Initialization of object     // "tname" of JTextField class.    tname = new JTextField(20);      // Initialization of object    // "two" of JLabel class.    two = new JLabel("CODE");      // Initialization of object     // "tcode" of JTextField class.    tcode = new JTextField(20);      // Initialization of object    // "three" of JLabel class.    three = new JLabel("DESIGNATION");      // Initialization of object     // "tdesig" of JTextField class.    tdesig = new JTextField(20);      // Initialization of object    // "four" of JLabel class.    four = new JLabel("SALARY");      // Initialization of object     // "tsalary" of JTextField class.    tsalary = new JTextField(20);      // Initialization of object    // "buttonsave" of JButton class.    buttonSave = new JButton("SAVE");      // Initialization of object    // "buttonexit" of JButton class.    buttonExit = new JButton("EXIT");      // Adding Jlabel "one" on JFrame.    p1.add(one);      // Adding JTextField "tname" on JFrame.    p1.add(tname);      // Adding Jlabel "two" on JFrame.    p1.add(two);      // Adding JTextField "tcode" on JFrame.    p1.add(tcode);      // Adding Jlabel "three" on JFrame.    p1.add(three);      // Adding JTextField "tdesig" on JFrame.    p1.add(tdesig);      // Adding Jlabel "four" on JFrame.    p1.add(four);      // Adding JTextField "tsalary" on JFrame.    p1.add(tsalary);      // Adding JButton "buttonsave" on JFrame.    p2.add(buttonSave);      // Adding JButton "buttonexit" on JFrame.    p2.add(buttonExit);      // add the p1 object which     // refer to the Jpanel    add(p1, "North");      // add the p2 object which    // refer to the Jpanel    add(p2, "South");      // Function to set visible    // status of JFrame.    setVisible(true);      // this Keyword refers to current    // object. Function to set size of JFrame.    this.setSize(400, 180);}      // Main Method    public static void main(String args[])    {          // calling the constructor        new GridLayoutDemo();    }}Output:Video Playerhttps://media.geeksforgeeks.org/wp-content/uploads/Untitled-14.mp400:0000:0000:22Use Up/Down Arrow keys to increase or decrease volume.
// Java program to illustrate the GridLayoutimport javax.swing.*;import java.awt.*;  // class GridLayout extends JFramepublic class GridLayoutDemo extends JFrame {  GridLayoutDemo() {      // Creating Object P1 of JPanel class    JPanel p1 = new JPanel();      // set the layout    p1.setLayout(new GridLayout(4, 2));      // Creating Object of "FlowLayout" class    FlowLayout layout = new FlowLayout();      // Creating Object P2 of JPanel class    JPanel p2 = new JPanel();      // set the layout    p2.setLayout(layout);      // Declaration of objects of JLabel class.    JLabel one, two, three, four;      // Declaration of objects of JTextField class.    JTextField tname, tsalary, tcode, tdesig;      // Declaration of objects of JButton class.    JButton buttonSave, buttonExit;      // Initialization of object     // "one" of JLabel class.    one = new JLabel("NAME");      // Initialization of object     // "tname" of JTextField class.    tname = new JTextField(20);      // Initialization of object    // "two" of JLabel class.    two = new JLabel("CODE");      // Initialization of object     // "tcode" of JTextField class.    tcode = new JTextField(20);      // Initialization of object    // "three" of JLabel class.    three = new JLabel("DESIGNATION");      // Initialization of object     // "tdesig" of JTextField class.    tdesig = new JTextField(20);      // Initialization of object    // "four" of JLabel class.    four = new JLabel("SALARY");      // Initialization of object     // "tsalary" of JTextField class.    tsalary = new JTextField(20);      // Initialization of object    // "buttonsave" of JButton class.    buttonSave = new JButton("SAVE");      // Initialization of object    // "buttonexit" of JButton class.    buttonExit = new JButton("EXIT");      // Adding Jlabel "one" on JFrame.    p1.add(one);      // Adding JTextField "tname" on JFrame.    p1.add(tname);      // Adding Jlabel "two" on JFrame.    p1.add(two);      // Adding JTextField "tcode" on JFrame.    p1.add(tcode);      // Adding Jlabel "three" on JFrame.    p1.add(three);      // Adding JTextField "tdesig" on JFrame.    p1.add(tdesig);      // Adding Jlabel "four" on JFrame.    p1.add(four);      // Adding JTextField "tsalary" on JFrame.    p1.add(tsalary);      // Adding JButton "buttonsave" on JFrame.    p2.add(buttonSave);      // Adding JButton "buttonexit" on JFrame.    p2.add(buttonExit);      // add the p1 object which     // refer to the Jpanel    add(p1, "North");      // add the p2 object which    // refer to the Jpanel    add(p2, "South");      // Function to set visible    // status of JFrame.    setVisible(true);      // this Keyword refers to current    // object. Function to set size of JFrame.    this.setSize(400, 180);}      // Main Method    public static void main(String args[])    {          // calling the constructor        new GridLayoutDemo();    }}
Output:
Program 2: In below program we are passing the argument in GridLayout. We create 5 JButton components named “btn1“, “btn2“, “btn3“, “btn4“, “btn5” and then add them to the JFrame by the method add(). We will set the visibility and size of the frame by using setvisible() and setsize() method. The layout is set by using setLayout() method.// Java program to illustrate the GridLayoutimport java.awt.*;import javax.swing.*;  // create a class griddemopublic class Griddemo {  // Main Methodpublic static void main(String[] args){      // Creating Object of JFrame class     // with new name frame    JFrame frame = new JFrame("GridLayout Demo");      // Initialization of object     // "btn1" of JButton class.    JButton btn1 = new JButton("Button 1");      // Initialization of object     // "btn2" of JButton class.    JButton btn2 = new JButton("Button 2");      // Initialization of object     // "btn3" of JButton class.    JButton btn3 = new JButton("Button 3");      // Initialization of object    // "btn4" of JButton class.    JButton btn4 = new JButton("Button 4");      // Initialization of object     // "btn5" of JButton class.    JButton btn5 = new JButton("Button 5");      // Creating Object Panel of JPanel class    // create grid layout with 3 rows,     // 2 columns with horizontal and     // vertical gap set to 10    JPanel panel = new JPanel(new GridLayout(3, 2, 10, 10));      // Adding JButton "btn1" on JPanel.    panel.add(btn1);      // Adding JButton "btn2" on JPanel.    panel.add(btn2);      // Adding JButton "btn3" on JPanel.    panel.add(btn3);      // Adding JButton "btn4" on JPanel.    panel.add(btn4);      // Adding JButton "btn5" on JPanel.    panel.add(btn5);      // Function to close the operation of JFrame.    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      // Function to set size of JFrame.    frame.setSize(300, 150);      // Function to get the content of JFrame.    frame.getContentPane().add(panel);      // Function to set visible status of JFrame.    frame.setVisible(true);}}Output:Video Playerhttps://media.geeksforgeeks.org/wp-content/uploads/Untitled-13Trim-2.mp400:0000:0000:16Use Up/Down Arrow keys to increase or decrease volume.
// Java program to illustrate the GridLayoutimport java.awt.*;import javax.swing.*;  // create a class griddemopublic class Griddemo {  // Main Methodpublic static void main(String[] args){      // Creating Object of JFrame class     // with new name frame    JFrame frame = new JFrame("GridLayout Demo");      // Initialization of object     // "btn1" of JButton class.    JButton btn1 = new JButton("Button 1");      // Initialization of object     // "btn2" of JButton class.    JButton btn2 = new JButton("Button 2");      // Initialization of object     // "btn3" of JButton class.    JButton btn3 = new JButton("Button 3");      // Initialization of object    // "btn4" of JButton class.    JButton btn4 = new JButton("Button 4");      // Initialization of object     // "btn5" of JButton class.    JButton btn5 = new JButton("Button 5");      // Creating Object Panel of JPanel class    // create grid layout with 3 rows,     // 2 columns with horizontal and     // vertical gap set to 10    JPanel panel = new JPanel(new GridLayout(3, 2, 10, 10));      // Adding JButton "btn1" on JPanel.    panel.add(btn1);      // Adding JButton "btn2" on JPanel.    panel.add(btn2);      // Adding JButton "btn3" on JPanel.    panel.add(btn3);      // Adding JButton "btn4" on JPanel.    panel.add(btn4);      // Adding JButton "btn5" on JPanel.    panel.add(btn5);      // Function to close the operation of JFrame.    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      // Function to set size of JFrame.    frame.setSize(300, 150);      // Function to get the content of JFrame.    frame.getContentPane().add(panel);      // 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/java/awt/GridLayout.html
Java-AWT
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
HashMap in Java with Examples
Interfaces in Java
Stream In Java
How to iterate any Map in Java
ArrayList in Java
Initialize an ArrayList in Java
Stack Class in Java
Multidimensional Arrays in Java
Singleton Class in Java