Module java.desktop
Package javax.swing

## Class GroupLayout.Group

- java.lang.Object
- - javax.swing.GroupLayout.Group

- Direct Known Subclasses:
    `GroupLayout.ParallelGroup`, `GroupLayout.SequentialGroup`
  Enclosing class:
    GroupLayout

      public abstract class GroupLayout.Group
      extends Object

  `Group` provides the basis for the two types of operations supported by `GroupLayout`: laying out components one after another (`SequentialGroup`) or aligned (`ParallelGroup`). `Group` and its subclasses have no public constructor; to create one use one of `createSequentialGroup` or `createParallelGroup`. Additionally, taking a `Group` created from one `GroupLayout` and using it with another will produce undefined results.

  Various methods in `Group` and its subclasses allow you to explicitly specify the range. The arguments to these methods can take two forms, either a value greater than or equal to 0, or one of `DEFAULT_SIZE` or `PREFERRED_SIZE`. A value greater than or equal to `0` indicates a specific size. `DEFAULT_SIZE` indicates the corresponding size from the component should be used. For example, if `DEFAULT_SIZE` is passed as the minimum size argument, the minimum size is obtained from invoking `getMinimumSize` on the component. Likewise, `PREFERRED_SIZE` indicates the value from `getPreferredSize` should be used. The following example adds `myComponent` to `group` with specific values for the range. That is, the minimum is explicitly specified as 100, preferred as 200, and maximum as 300.

         group.addComponent(myComponent, 100, 200, 300);

  The following example adds `myComponent` to `group` using a combination of the forms. The minimum size is forced to be the same as the preferred size, the preferred size is determined by using `myComponent.getPreferredSize` and the maximum is determined by invoking `getMaximumSize` on the component.

         group.addComponent(myComponent, GroupLayout.PREFERRED_SIZE,
                   GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE);

  Unless otherwise specified all the methods of `Group` and its subclasses that allow you to specify a range throw an `IllegalArgumentException` if passed an invalid range. An invalid range is one in which any of the values are < 0 and not one of `PREFERRED_SIZE` or `DEFAULT_SIZE`, or the following is not met (for specific values): `min` <= `pref` <= `max`.

  Similarly any methods that take a `Component` throw a `IllegalArgumentException` if passed `null` and any methods that take a `Group` throw an `NullPointerException` if passed `null`.

  Since:
    1.6
  See Also:
    `GroupLayout.createSequentialGroup()`, `GroupLayout.createParallelGroup()`

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `GroupLayout.Group` | `addComponent​(Component component)` | Adds a `Component` to this `Group`.
    `GroupLayout.Group` | `addComponent​(Component component, int min, int pref, int max)` | Adds a `Component` to this `Group` with the specified size.
    `GroupLayout.Group` | `addGap​(int size)` | Adds a rigid gap to this `Group`.
    `GroupLayout.Group` | `addGap​(int min, int pref, int max)` | Adds a gap to this `Group` with the specified size.
    `GroupLayout.Group` | `addGroup​(GroupLayout.Group group)` | Adds a `Group` to this `Group`.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### addGroup

          public GroupLayout.Group addGroup​(GroupLayout.Group group)

      Adds a `Group` to this `Group`.
      Parameters:
        `group` - the `Group` to add
      Returns:
        this `Group`

    - #### addComponent

          public GroupLayout.Group addComponent​(Component component)

      Adds a `Component` to this `Group`.
      Parameters:
        `component` - the `Component` to add
      Returns:
        this `Group`

    - #### addComponent

          public GroupLayout.Group addComponent​(Component component,
                                                int min,
                                                int pref,
                                                int max)

      Adds a `Component` to this `Group` with the specified size.
      Parameters:
        `component` - the `Component` to add
        `min` - the minimum size or one of `DEFAULT_SIZE` or `PREFERRED_SIZE`
        `pref` - the preferred size or one of `DEFAULT_SIZE` or `PREFERRED_SIZE`
        `max` - the maximum size or one of `DEFAULT_SIZE` or `PREFERRED_SIZE`
      Returns:
        this `Group`

    - #### addGap

          public GroupLayout.Group addGap​(int size)

      Adds a rigid gap to this `Group`.
      Parameters:
        `size` - the size of the gap
      Returns:
        this `Group`
      Throws:
        `IllegalArgumentException` - if `size` is less than `0`

    - #### addGap

          public GroupLayout.Group addGap​(int min,
                                          int pref,
                                          int max)

      Adds a gap to this `Group` with the specified size.
      Parameters:
        `min` - the minimum size of the gap
        `pref` - the preferred size of the gap
        `max` - the maximum size of the gap
      Returns:
        this `Group`
      Throws:
        `IllegalArgumentException` - if any of the values are less than `0`