Laying Out Components Within a Container |
Here's an applet that shows aGridLayout
in action.
This is a picture of the applet's GUI. To run the applet, click the picture. The applet will appear in a new browser window.A
GridLayout
places components in a grid of cells. Each component takes all the available space within its cell, and each cell is exactly the same size. If you resize theGridLayout
window, you'll see that theGridLayout
changes the cell size so that the cells are as large as possible, given the space available to the container.Below is the code that creates the
GridLayout
and the components it manages. (Here's the whole program. The program runs either within an applet, with the help ofAppletButton
, or as an application.)
The constructor tells theContainer contentPane = getContentPane(); contentPane.setLayout(new GridLayout(0,2)); contentPane.add(new JButton("Button 1")); contentPane.add(new JButton("2")); contentPane.add(new JButton("Button 3")); contentPane.add(new JButton("Long-Named Button 4")); contentPane.add(new JButton("Button 5"));GridLayout
class to create an instance that has two columns and as many rows as necessary. It's one of two constructors forGridLayout
. Here are both constructors:At least one of thepublic GridLayout(int rows, int columns) public GridLayout(int rows, int columns, int horizontalGap, int verticalGap)rows
andcolumns
arguments must be nonzero. ThehorizontalGap
andverticalGap
arguments to the second constructor allow you to specify the number of pixels between cells. If you don't specify gaps, their values default to zero. In the applet above, any apparent gaps are the result of the buttons reserving extra space around their apparent display area.Examples that Use GridLayout
The following table lists some of the examples that use grid layout.
Example Where Described Notes GridWindow.java
This page Uses a 2-column grid. LabelDemo.java
How to Use Labels Uses a 3-row grid. Converter.java
The Anatomy of a Swing-Based Application Uses the 4-argument GridLayout
constructor.
Laying Out Components Within a Container |