LayoutManager (Java SE 9 & JDK 9 )
Keywords: java.awt.LayoutManager interface

Module java.desktop
Package java.awt

## Interface LayoutManager

- All Known Subinterfaces:
    `LayoutManager2`
  All Known Implementing Classes:
    `BasicComboBoxUI.ComboBoxLayoutManager`, `BasicInternalFrameTitlePane.TitlePaneLayout`, `BasicInternalFrameUI.InternalFrameLayout`, `BasicOptionPaneUI.ButtonAreaLayout`, `BasicScrollBarUI`, `BasicSplitPaneDivider.DividerLayout`, `BasicSplitPaneUI.BasicHorizontalLayoutManager`, `BasicSplitPaneUI.BasicVerticalLayoutManager`, `BasicTabbedPaneUI.TabbedPaneLayout`, `BorderLayout`, `BoxLayout`, `CardLayout`, `DefaultMenuLayout`, `FlowLayout`, `GridBagLayout`, `GridLayout`, `GroupLayout`, `JRootPane.RootLayout`, `JSpinner.DateEditor`, `JSpinner.DefaultEditor`, `JSpinner.ListEditor`, `JSpinner.NumberEditor`, `MetalComboBoxUI.MetalComboBoxLayoutManager`, `MetalScrollBarUI`, `MetalTabbedPaneUI.TabbedPaneLayout`, `OverlayLayout`, `ScrollPaneLayout`, `ScrollPaneLayout.UIResource`, `SpringLayout`, `SynthScrollBarUI`, `ViewportLayout`

      public interface LayoutManager

  Defines the interface for classes that know how to lay out `Container`s.

  Swing's painting architecture assumes the children of a `JComponent` do not overlap. If a `JComponent`'s `LayoutManager` allows children to overlap, the `JComponent` must override `isOptimizedDrawingEnabled` to return false.

  See Also:
    `Container`, `JComponent.isOptimizedDrawingEnabled()`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addLayoutComponent​(String name, Component comp)` | If the layout manager uses a per-component string, adds the component `comp` to the layout, associating it with the string specified by `name`.
    `void` | `layoutContainer​(Container parent)` | Lays out the specified container.
    `Dimension` | `minimumLayoutSize​(Container parent)` | Calculates the minimum size dimensions for the specified container, given the components it contains.
    `Dimension` | `preferredLayoutSize​(Container parent)` | Calculates the preferred size dimensions for the specified container, given the components it contains.
    `void` | `removeLayoutComponent​(Component comp)` | Removes the specified component from the layout.

- - ### Method Detail

    - #### addLayoutComponent

          void addLayoutComponent​(String name,
                                  Component comp)

      If the layout manager uses a per-component string, adds the component `comp` to the layout, associating it with the string specified by `name`.
      Parameters:
        `name` - the string to be associated with the component
        `comp` - the component to be added

    - #### removeLayoutComponent

          void removeLayoutComponent​(Component comp)

      Removes the specified component from the layout.
      Parameters:
        `comp` - the component to be removed

    - #### preferredLayoutSize

          Dimension preferredLayoutSize​(Container parent)

      Calculates the preferred size dimensions for the specified container, given the components it contains.
      Parameters:
        `parent` - the container to be laid out
      Returns:
        the preferred dimension for the container
      See Also:
        `minimumLayoutSize(java.awt.Container)`

    - #### minimumLayoutSize

          Dimension minimumLayoutSize​(Container parent)

      Calculates the minimum size dimensions for the specified container, given the components it contains.
      Parameters:
        `parent` - the component to be laid out
      Returns:
        the minimum dimension for the container
      See Also:
        `preferredLayoutSize(java.awt.Container)`

    - #### layoutContainer

          void layoutContainer​(Container parent)

      Lays out the specified container.
      Parameters:
        `parent` - the container to be laid out