LayoutStyle (Java Platform SE 8 )
Keywords: javax.swing.LayoutStyle class
Date: 2026-04-24

javax.swing

## Class LayoutStyle

- java.lang.Object
- - javax.swing.LayoutStyle

-     public abstract class LayoutStyle
      extends Object

  `LayoutStyle` provides information about how to position components. This class is primarily useful for visual tools and layout managers. Most developers will not need to use this class.

  You typically don't set or create a `LayoutStyle`. Instead use the static method `getInstance` to obtain the current instance.

  Since:
    1.6

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `LayoutStyle.ComponentPlacement` `ComponentPlacement` is an enumeration of the possible ways two components can be placed relative to each other.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LayoutStyle()` Creates a new `LayoutStyle`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract int` | `getContainerGap(JComponent component, int position, Container parent)` Returns the amount of space to place between the component and specified edge of its parent.
    `static LayoutStyle` | `getInstance()` Returns the shared instance of `LayoutStyle`.
    `abstract int` | `getPreferredGap(JComponent component1, JComponent component2, LayoutStyle.ComponentPlacement type, int position, Container parent)` Returns the amount of space to use between two components.
    `static void` | `setInstance(LayoutStyle style)` Sets the shared instance of `LayoutStyle`.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### LayoutStyle

          public LayoutStyle()

      Creates a new `LayoutStyle`. You generally don't create a `LayoutStyle`. Instead use the method `getInstance` to obtain the current `LayoutStyle`.

  - ### Method Detail

    - #### setInstance

          public static void setInstance(LayoutStyle style)

      Sets the shared instance of `LayoutStyle`. Specifying `null` results in using the `LayoutStyle` from the current `LookAndFeel`.
      Parameters:
        `style` - the `LayoutStyle`, or `null`
      See Also:
        `getInstance()`

    - #### getInstance

          public static LayoutStyle getInstance()

      Returns the shared instance of `LayoutStyle`. If an instance has not been specified in `setInstance`, this will return the `LayoutStyle` from the current `LookAndFeel`.
      Returns:
        the shared instance of `LayoutStyle`
      See Also:
        `LookAndFeel.getLayoutStyle()`

    - #### getPreferredGap

          public abstract int getPreferredGap(JComponent component1,
                                              JComponent component2,
                                              LayoutStyle.ComponentPlacement type,
                                              int position,
                                              Container parent)

      Returns the amount of space to use between two components. The return value indicates the distance to place `component2` relative to `component1`. For example, the following returns the amount of space to place between `component2` and `component1` when `component2` is placed vertically above `component1`:

             int gap = getPreferredGap(component1, component2,
                                       ComponentPlacement.RELATED,
                                       SwingConstants.NORTH, parent);

      The `type` parameter indicates the relation between the two components. If the two components will be contained in the same parent and are showing similar logically related items, use `RELATED`. If the two components will be contained in the same parent but show logically unrelated items use `UNRELATED`. Some look and feels may not distinguish between the `RELATED` and `UNRELATED` types.

      The return value is not intended to take into account the current size and position of `component2` or `component1`. The return value may take into consideration various properties of the components. For example, the space may vary based on font size, or the preferred size of the component.

      Parameters:
        `component1` - the `JComponent` `component2` is being placed relative to
        `component2` - the `JComponent` being placed
        `position` - the position `component2` is being placed relative to `component1`; one of `SwingConstants.NORTH`, `SwingConstants.SOUTH`, `SwingConstants.EAST` or `SwingConstants.WEST`
        `type` - how the two components are being placed
        `parent` - the parent of `component2`; this may differ from the actual parent and it may be `null`
      Returns:
        the amount of space to place between the two components
      Throws:
        `NullPointerException` - if `component1`, `component2` or `type` is `null`
        `IllegalArgumentException` - if `position` is not one of `SwingConstants.NORTH`, `SwingConstants.SOUTH`, `SwingConstants.EAST` or `SwingConstants.WEST`
      Since:
        1.6
      See Also:
        `LookAndFeel.getLayoutStyle()`

    - #### getContainerGap

          public abstract int getContainerGap(JComponent component,
                                              int position,
                                              Container parent)

      Returns the amount of space to place between the component and specified edge of its parent.
      Parameters:
        `component` - the `JComponent` being positioned
        `position` - the position `component` is being placed relative to its parent; one of `SwingConstants.NORTH`, `SwingConstants.SOUTH`, `SwingConstants.EAST` or `SwingConstants.WEST`
        `parent` - the parent of `component`; this may differ from the actual parent and may be `null`
      Returns:
        the amount of space to place between the component and specified edge
      Throws:
        `IllegalArgumentException` - if `position` is not one of `SwingConstants.NORTH`, `SwingConstants.SOUTH`, `SwingConstants.EAST` or `SwingConstants.WEST`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.