Documentation

GridBagLayout

The grid bag layout manager places components in a grid of columns and rows, allowing specified components to span multiple columns or rows. Not all columns/rows necessarily have the same width/height. Essentially, GridBagLayout places components in rectangles (cells) in a grid, and then uses the components' preferred sizes to determine how big the cells should be.

GridBagLayout

Use the column and row headers to insert or delete columns/rows and change column/row properties.

GridBagLayout is part of the standard Java distribution.

Extensions

JFormDesigner extends the original GridBagLayout with following features:

  • Horizontal and vertical gaps
    Simply specify the gap size and JFormDesigner automatically computes the GridBagConstraints.insets for all components. This makes designing a form with consistent gaps using GridBagLayout much easier. No longer wrestling with GridBagConstraints.insets.
    With gaps: Without gaps:
    GridBagLayout with gaps    GridBagLayout without gaps
  • Left/top layout alignment
    The pure GridBagLayout centers the layout within the container if there is enough space. JFormDesigner easily allows you to fix this problem by switching on two options: align left and align top.
    With layout alignment: Without layout alignment:
    GridBagLayout with layout alignment    GridBagLayout without layout alignment
  • Default component alignment
    Allows you to specify a default alignment for components within columns/rows. This is very useful for columns with right aligned labels because you specify the alignment only once for the column and all added labels will automatically aligned to the right.

Layout properties

A container with this layout manager has following layout properties:

Property Name Description
horizontal gap The horizontal gap between components. Default is 5.
vertical gap The vertical gap between components. Default is 5.
align left If true, aligns the layout to the left side of the container. If false, then the layout is centered horizontally. Default is true.
align top If true, aligns the layout to the top side of the container. If false, then the layout is centered vertically. Default is true.

These four properties are JFormDesigner extensions to the original GridBagLayout. However, no additional library is required.

Column/row properties

Each column and row has its own properties. Use the column and row headers to change column/row properties.

GridBagLayout column properties    GridBagLayout row properties
Property Name Description
Column/Row The index of the column/row. Use the arrow buttons (or Alt+Left, Alt+Right, Alt+Up, Alt+Down keys) to edit the properties of the previous or next column/row.
Default alignment The default alignment of the components within a column/row. Used if the value of the constraints properties "h align" or "v align" is DEFAULT.
Size The minimum width of a column or height of a row.
Resize behavior The resize weight of the column/row.

Tip: The column/row context menu allows you to alter many of these options for multi-selections.

Constraints properties

A component contained in a container with this layout manager has following constraints properties:

Property Name Description
grid x Specifies the component's horizontal grid origin (column index).
grid y Specifies the component's vertical grid origin (row index).
grid width Specifies the component's horizontal grid extend (number of columns). Default is 1.
grid height Specifies the component's vertical grid extend (number of rows). Default is 1.
h align The horizontal alignment of the component within its cell. Possible values: DEFAULT, LEFT, CENTER, RIGHT and FILL. Default is DEFAULT.
v align The vertical alignment of the component within its cell. Possible values: DEFAULT, TOP, CENTER, BOTTOM, FILL, BASELINE (Java 6), ABOVE_BASELINE (Java 6) and BELOW_BASELINE (Java 6). Default is DEFAULT.
weight x Specifies how to distribute extra horizontal space. Default is 0.0.
weight y Specifies how to distribute extra vertical space. Default is 0.0.
insets Specifies the external padding of the component, the minimum amount of space between the component and the edges of its display area. Default is [0,0,0,0].
ipad x Specifies the internal padding of the component, how much space to add to the minimum width of the component. Default is 0.
ipad y Specifies the internal padding, that is, how much space to add to the minimum height of the component. Default is 0.

In contrast to the GridBagConstraints API, which uses anchor and fill to specify the alignment and resize behavior of a component, JFormDesigner uses the usual h/v align notation.

Tip: The component context menu allows you to alter the alignment for multi-selections.