GridBagLayout – Java Swing – Example
In this tutorial, we are going to see an example of GridBagLayout in Java Swing. GridBagLayout is one of the most flexible and complex layout managers provided by the Java platform. GridBagLayout places components in a grid of rows and columns, allowing specified components to span multiple rows or columns. Not all rows are necessarily the same height. Similarly, not all columns are necessarily the same width. Essentially, GridBagLayout places components in rectangles (cells) in a grid, then uses the preferred sizes of the components to determine the size of the cells. The resizing behavior is based on the weights that the program assigns to the components in GridBagLayout.
Example of GridBagLayout in Java Swing
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyGridbag extends JFrame
{
MyGridbag()
{
// Set the title of JFrame
setTitle("GridBagLayout Example");
// Creating an object of Jpanel class
JPanel p = new JPanel();
// Set the layout
p.setLayout(new GridBagLayout());
// Create a constraint object
GridBagConstraints c = new GridBagConstraints();
// Specifies the external padding of all components
c.insets = new Insets(1, 1, 1, 1);
// column 0
c.gridx = 0;
// line 0
c.gridy = 0;
// increases the width of the components by 10 pixels
c.ipadx = 100;
// increases the height of the components by 50 pixels
c.ipady = 100;
// Add constraints
p.add(new JButton("Button 1"), c);
// column 1
c.gridx = 1;
// increases the width of the components by 90 pixels
c.ipadx = 20;
// increases the height of the components by 40 pixels
c.ipady = 20;
// Add constraints
p.add(new JButton("Button 2"), c);
// column 0
c.gridx = 0;
// line 2
c.gridy = 1;
// increases the width of the components by 20 pixels
c.ipadx = 10;
// increases the height of the components by 20 pixels
c.ipady = 10;
// Add constraints
p.add(new JButton("Button 3"), c);
// increases the width of the components by 10 pixels
c.ipadx = 60;
// column 1
c.gridx = 1;
// Add constraints
p.add(new JButton("Button 4"), c);
// Creation of a "WindowAdapter" object
WindowListener winAdap = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
// exit the system
System.exit(0);
}
};
// add the "windowlistener" listener
addWindowListener(winAdap);
// Add constraints
getContentPane().add(p);
// Set JFrame size
setSize(400, 250);
// Set the visibility of JFrame
setVisible(true);
}
// Main method
public static void main(String[] args)
{
// call the constructor
new MyGridbag();
}
}
Output:





