GridBagLayout in Java Swing

GridBagLayout is a layout manager in Java Swing that allows us to create complex layouts by specifying how components are arranged in rows and columns of a grid. Unlike other layout managers, GridBagLayout lets us specify the size and position of each component with great flexibility, making it a powerful tool for designing user interfaces.

To use GridBagLayout in Java Swing, we need to create a GridBagLayout object and set it as the layout manager for a container such as a JFrame or JPanel. Then we can create GridBagConstraints objects to specify how each component should be arranged within the grid.

Following is an example code snippet that shows how to use GridBagLayout to arrange three components in a JFrame:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class GridBagLayoutDemo extends JFrame {
	public GridBagLayoutDemo() {
		setTitle("GridBagLayout Demo");
		
		JPanel panel = new JPanel();
		panel.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();

		JTextField textField = new JTextField("Enter text here");
		c.gridx = 0;
		c.gridy = 0;
		c.gridwidth = 2;
		c.fill = GridBagConstraints.HORIZONTAL;
		panel.add(textField, c);

		JButton button1 = new JButton("Button 1");
		c.gridx = 0;
		c.gridy = 1;
		c.gridwidth = 1;
		c.fill = GridBagConstraints.HORIZONTAL;
		panel.add(button1, c);

		JButton button2 = new JButton("Button 2");
		c.gridx = 1;
		c.gridy = 1;
		c.gridwidth = 1;
		c.fill = GridBagConstraints.HORIZONTAL;
		panel.add(button2, c);

		this.add(panel);
		this.pack();
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new GridBagLayoutDemo();
	}

}

Output:

GridBagLayout in Java swing