Documentation

GroupLayout (Free Design)

The goal of the group layout manager is to make it easy to create professional cross platform layouts. It is designed for GUI builders, such as JFormDesigner, to use the "Free Design" paradigm. You can lay out your forms by simply placing components where you want them. Visual guidelines suggest optimal spacing, alignment and resizing of components.

GroupLayout

GroupLayout has been developed by the NetBeans team and is also used by the NetBeans GUI Builder (formerly Project Matisse). They provide a comprehensive tutorial on designing GUIs using GroupLayout, which is also suitable for JFormDesigner: netbeans.apache.org/kb/docs/java/quickstart-gui.html

GroupLayout is part of the standard Java distribution since Java 6. If you need to run your application also on Java 5 or 1.4, you can use the open-source Swing Layout Extension library, which is compatible to the Java 6 GroupLayout, but uses different package names. Change the option "GroupLayout Generation Style" in the Layout Managers (Java Code Generator) preferences if necessary.

Maven Central Repository: groupId: org.swinglabs artifactId: swing-layout version: 1.0.3

The API documentation is available here.

IDE plug-ins: If you use GroupLayout from the Swing Layout Extension library the first time, the JFormDesigner IDE plug-in ask you whether it should copy the required library (and its source code and documentation) to the IDE project and add it to the classpath of the IDE project.

Alignment guidelines

Alignment guidelines appear only when adding or moving components. They indicate the preferred positions to which components snap when releasing the mouse button.

Insets are the preferred spacings between components and their container.

Inset Guidelines

Offsets are the preferred spacings between adjacent components.

Offset Guidelines

Baseline alignment is the preferred relationship between adjacent components that display text.

Align Baseline Guidelines

Edge alignments (top, bottom, left and right) are possible relationships between adjacent components.

Align Top Guidelines

Align Left Guidelines

Indentation alignment is a special alignment relationship in which one component is located below another and offset slightly to the right.

Indent Guidelines

Anchoring indicators

Anchoring indicators appear when components have snapped into position. They illustrate the alignment and relationship among components.

Anchor Guidelines

Anchors connecting components to their container or to adjacent components are represented by small semi-circular indicators with dashed lines.

Visualization of gaps

The gaps between components are visualized as light gray rectangles. Fixed size gaps are solid and resizable gaps are shown with springs inside. Adjacent gaps are shown when a component is selected. All gaps between all components are shown if a container is selected.

Gaps

To disable visualization of gaps, right-click on a GroupLayout container and deselect Show Gaps.

Commands

The designer context menu provides following GroupLayout specific commands:

Command Description
Align Column LeftAlign Column Right
Align Row TopAlign Row Bottom
Align Column CenterAlign Row Center
Align in column/row Aligns the selected components left/right/top/bottom/center in column/row.
Align LeftAlign Right
Align TopAlign Bottom
Align Aligns the selected components left/right/top/bottom.
Anchor LeftAnchor Right
Anchor TopAnchor Bottom
Anchor Changes the anchoring of the selected components. A component is usually horizontally anchored left/right and vertically anchored top/bottom. Anchoring connects a component to a container edge or a neighborhood component edge.
Horizontal Auto Resizing Horizontal Auto Resizing Makes the selected components resize horizontally at runtime if the container size changes.
Vertical Auto Resizing Vertical Auto Resizing Makes the selected components resize vertically at runtime if the container size changes.
Same Width Same Width Makes the selected components all the same width. If one of the selected components is already in a group of "Same Width" components, the other components are added to the existing group. To remove components from a group, select them and then execute this command. Grouped components are marked with a small indicator.
Same Width indicators
Same Height Same Height Makes the selected components all the same height. See "Save Width" command for more details.
Set to Default Size Makes the selected components have its default size.
Edit Layout Space Changes the gaps around the selected component.
Show Gaps Shows/hides the gaps around the selected components.
Duplicate Duplicates the selected components and places the new components below the original components. Use Ctrl+Left, Ctrl+Right, Ctrl+Up or Ctrl+Down keys to place the duplicated components left, right, above or below the original components.

Layout manager properties

A container with this layout manager has following layout manager properties:

Property Name Description Default
honors visibility Specifies whether component visibility is considered when positioning and sizing components. If true, non-visible components are not treated as part of the layout. If false, components are positioned and sized regardless of visibility. true

Layout constraints properties

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

Property Name Description Default
horizontal size Specifies the component's horizontal size in pixel or Default. If set to Default, the component's preferred width is used. Default
vertical size Specifies the component's vertical size in pixel or Default. If set to Default, the component's preferred height is used. Default
horizontal resizable Specifies whether the component is horizontal resizable. false
vertical resizable Specifies whether the component is vertical resizable. false
top gap Specifies size of the top gap.
left gap Specifies size of the left gap.
bottom gap Specifies size of the bottom gap.
right gap Specifies size of the right gap.
top gap resizable Specifies whether the top gap is vertical resizable. false
left gap resizable Specifies whether the left gap is horizontal resizable. false
bottom gap resizable Specifies whether the bottom gap is vertical resizable. false
right gap resizable Specifies whether the right gap is horizontal resizable. false