Katerina Zamani

About Katerina Zamani

Katerina has graduated from the Department of Informatics and Telecommunications in National and Kapodistrian University of Athens (NKUA) and she attends MSc courses in Advanced Information Systems at the same department. Currently, her main academic interests focus on web applications, mobile development, software engineering, databases and telecommunications.

Java GridLayout Example

GridLayout represents a layout manager with a specified number of rows and columns. Every rectangle cell has the same size and contains a component, which fills in the entire size of the cell.

In this example we are going to design a simple calculator using GridLayout, where the grid will contains simple components.

 
 
 
 

1. Syntax of GridLayout

GridLayout has two constructors:

The arguments that are used are:

  • rows: is the number of rows in the grid.
  • cols: represents the number of columns in the grid.
  • hgap: is the horizontal space between the cells.
  • vgap: is the vertical space between the cells

2. Example of GridLayout

Before showing how to implement a GridLayout, it is important to mention that we should initialize a Jframe, which is the window that contains the components.

Create GridLayoutTest.java file and paste the following code.

GridLayoutTest.java:

package com.javacodegeeks.desktop.gridlayout;

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class GridLayoutTest {

	private static JButton[] arrayBtn;
	
	public static void main(String[] args) {
	    
		// the frame that contains the components
		JFrame frame = new JFrame("GridLayoutTest from JCG");
	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    // set the size of the frame
	    frame.setSize(350, 350);
	    
	    // set the rows and cols of the grid, as well the distances between them
	    GridLayout grid = new GridLayout(5, 3, 10, 10);
	    // what layout we want to use for our frame
	    frame.setLayout(grid);
	    
	    // add a text field with a specified text to the frame
	    JTextArea text = new JTextArea();
        text.setText("Result");
        text.setEditable(false);
        frame.add(text);
	    
        // add buttons to the frame
	    frame.add(new JButton("+"));
	    frame.add(new JButton("="));

	    arrayBtn = new JButton[10];
	    // add JButtons dynamically
	    for(int i=0; i < arrayBtn.length; i++) {
	    	arrayBtn[i] = new JButton(Integer.toString(i));
	    	frame.add(arrayBtn[i]);
	    }
	   
	    frame.setVisible(true);

	}

}

Lets explain the code above. After we instantiate and set Jframe, we create the GridLayout by declaring its rows, columns and its horizontal and vertical gaps. After that we set the instantiated GridLayout as the layout of our container by calling setLayout() method. In order to include the components to our layout, we have to add them to the JFrame and not to the GridLayout. In our example we add some components (JtextArea and JButton) directly to the frame and some others dynamically, as an array of that type (array of JButtons).

The execution of this example is shown in the next image.

GridLayoutTest1

You can notice that the orientation of the components is horizontal and left-to-right, because that is the default value of the ComponentOrientation property.

Download the source code

This was an example of GridLayout in Java. Download the source code of this example: GridLayoutTest.zip

Related Whitepaper:

Java Essential Training

Author David Gassner explores Java SE (Standard Edition), the language used to build mobile apps for Android devices, enterprise server applications, and more!

The course demonstrates how to install both Java and the Eclipse IDE and dives into the particulars of programming. The course also explains the fundamentals of Java, from creating simple variables, assigning values, and declaring methods to working with strings, arrays, and subclasses; reading and writing to text files; and implementing object oriented programming concepts. Exercise files are included with the course.

Get it Now!  

Examples Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use
All trademarks and registered trademarks appearing on Examples Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Examples Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.

Sign up for our Newsletter

15,153 insiders are already enjoying weekly updates and complimentary whitepapers! Join them now to gain exclusive access to the latest news in the Java world, as well as insights about Android, Scala, Groovy and other related technologies.

As an extra bonus, by joining you will get our brand new e-books, published by Java Code Geeks and their JCG partners for your reading pleasure! Enter your info and stay on top of things,

  • Fresh trends
  • Cases and examples
  • Research and insights
  • Two complimentary e-books