LayoutManager2 (Java SE 25 & JDK 25)
Description: declaration: module: java.desktop, package: java.awt, interface: LayoutManager2
Keywords: java.awt.LayoutManager2 interface

# Interface LayoutManager2

All Superinterfaces:
  `LayoutManager`

All Known Implementing Classes:
  `BasicSplitPaneUI.BasicHorizontalLayoutManager, BasicSplitPaneUI.BasicVerticalLayoutManager, BorderLayout, BoxLayout, CardLayout, DefaultMenuLayout, GridBagLayout, GroupLayout, JRootPane.RootLayout, OverlayLayout, SpringLayout`

public interface LayoutManager2 extends LayoutManager
Defines an interface for classes that know how to layout `Container`s based on a layout constraints object. This interface extends the `LayoutManager` interface to deal with layouts explicitly in terms of constraint objects that specify how and where components should be added to the layout.

This minimal extension to `LayoutManager` is intended for tool providers who wish to create constraint-based layouts. It does not yet provide full, general support for custom constraint-based layout managers.

See Also:
  - `LayoutManager`
  - `Container`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addLayoutComponent(Component comp, Object constraints)`
  Adds the specified component to the layout, using the specified constraint object.
  `float`
  `getLayoutAlignmentX(Container target)`
  Returns the alignment along the x axis.
  `float`
  `getLayoutAlignmentY(Container target)`
  Returns the alignment along the y axis.
  `void`
  `invalidateLayout(Container target)`
  Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.
  `Dimension`
  `maximumLayoutSize(Container target)`
  Calculates the maximum size dimensions for the specified container, given the components it contains.

  ### Methods declared in interface LayoutManager

  `addLayoutComponent, layoutContainer, minimumLayoutSize, preferredLayoutSize, removeLayoutComponent`

- ## Method Details

  - ### addLayoutComponent

    void addLayoutComponent(Component comp, Object constraints)
    Adds the specified component to the layout, using the specified constraint object.
    Parameters:
      `comp` - the component to be added
      `constraints` - where/how the component is added to the layout.

  - ### maximumLayoutSize

    Dimension maximumLayoutSize(Container target)
    Calculates the maximum size dimensions for the specified container, given the components it contains.
    Parameters:
      `target` - the target container
    Returns:
      the maximum size of the container
    See Also:
      - `Component.getMaximumSize()`
      - `LayoutManager`

  - ### getLayoutAlignmentX

    float getLayoutAlignmentX(Container target)
    Returns the alignment along the x axis. This specifies how the component would like to be aligned relative to other components. The value should be a number between 0 and 1 where 0 represents alignment along the origin, 1 is aligned the furthest away from the origin, 0.5 is centered, etc.
    Parameters:
      `target` - the target container
    Returns:
      the x-axis alignment preference

  - ### getLayoutAlignmentY

    float getLayoutAlignmentY(Container target)
    Returns the alignment along the y axis. This specifies how the component would like to be aligned relative to other components. The value should be a number between 0 and 1 where 0 represents alignment along the origin, 1 is aligned the furthest away from the origin, 0.5 is centered, etc.
    Parameters:
      `target` - the target container
    Returns:
      the y-axis alignment preference

  - ### invalidateLayout

    void invalidateLayout(Container target)
    Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.
    Parameters:
      `target` - the target container