Java Notes
GridLayout
GridLayout lays out components in a rectangular grid, where all
cells are equal size.
GridLayout forces components to have the same size. |
JPanel content = new JPanel(new GridLayout(2,2)); content.add(new JButton("Button 1")); content.add(new JButton("2")); content.add(new JLabel("")); // for empty cell content.add(new JButton("This is button three"));
To Create a GridLayout
There are three constructors:p.setLayout(new GridLayout()); // One row. Columns expand. p.setLayout(new GridLayout(rows, cols)); p.setLayout(new GridLayout(rows, cols, hgap, vgap));with the following int parameters: rows is number of rows, cols is number of columns, hgap is horizontal space between components (in pixels), and vgap is vertical space between components (in pixels).
For example, this creates a panel with a grid layout of 4 rows and 3 columns. There are 5 pixels of horizontal space between components and 10 pixels of space between vertical components.
JPanel p = new JPanel(); p.setLayout(new GridLayout(4, 3, 5, 10)); p.add(. . .);
To add Components to a GridLayout
Use the.add(. . .)
method to add
components to a container with a GridLayout.
You do not (can not) use the row and column to tell
where to add the components -- add them in starting at the
top left and going across the row first.
Empty Cells
There is no way to leave a cell empty in a grid layout. Although it often works ok to leave the final cells empty, there are reports of problems, so you should fill out the last cells in the final row too. The easiest way to do this is to put an empty label in any cell you want to skip. Eg,p.add(new JLabel(""));