LayoutManager (Java Platform SE 8 )
Keywords: java.awt.LayoutManager interface
Date: 2020-03-26

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 and 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
      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
      See Also:
        `preferredLayoutSize(java.awt.Container)`

    - #### layoutContainer

          void layoutContainer(Container parent)

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

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, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.