# Class JRootPane.RootLayout

java.lang.Object
javax.swing.JRootPane.RootLayout

All Implemented Interfaces:
  `LayoutManager, LayoutManager2, Serializable`

Enclosing class:
  `JRootPane`

protected class JRootPane.RootLayout extends Object implements LayoutManager2, Serializable
A custom layout manager that is responsible for the layout of layeredPane, glassPane, and menuBar.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the `java.beans` package. Please see `XMLEncoder`.

Since:
  1.2

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`RootLayout()`
Constructs a `RootLayout`.

## 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.
`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`.
`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.
`void`
`layoutContainer(Container parent)`
Instructs the layout manager to perform the layout for the specified container.
`Dimension`
`maximumLayoutSize(Container target)`
Returns the maximum amount of space the layout can use.
`Dimension`
`minimumLayoutSize(Container parent)`
Returns the minimum amount of space the layout needs.
`Dimension`
`preferredLayoutSize(Container parent)`
Returns the amount of space the layout would like to have.
`void`
`removeLayoutComponent(Component comp)`
Removes the specified component from the layout.

### Methods declared in class Object

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

## Constructor Details

### RootLayout

protected RootLayout()
Constructs a `RootLayout`.

## Method Details

### preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
Returns the amount of space the layout would like to have.

Specified by:
  `preferredLayoutSize` in interface `LayoutManager`
Parameters:
  `parent` - the Container for which this layout manager is being used
Returns:
  a Dimension object containing the layout's preferred size
See Also:
  - `LayoutManager.minimumLayoutSize(Container)`

### minimumLayoutSize

public Dimension minimumLayoutSize(Container parent)
Returns the minimum amount of space the layout needs.

Specified by:
  `minimumLayoutSize` in interface `LayoutManager`
Parameters:
  `parent` - the Container for which this layout manager is being used
Returns:
  a Dimension object containing the layout's minimum size
See Also:
  - `LayoutManager.preferredLayoutSize(Container)`

### maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
Returns the maximum amount of space the layout can use.

Specified by:
  `maximumLayoutSize` in interface `LayoutManager2`
Parameters:
  `target` - the Container for which this layout manager is being used
Returns:
  a Dimension object containing the layout's maximum size
See Also:
  - `Component.getMaximumSize()`
  - `LayoutManager`

### layoutContainer

public void layoutContainer(Container parent)
Instructs the layout manager to perform the layout for the specified container.

Specified by:
  `layoutContainer` in interface `LayoutManager`
Parameters:
  `parent` - the Container for which this layout manager is being used

### addLayoutComponent

public void addLayoutComponent(String name, Component comp)
Description copied from interface: `LayoutManager`
If the layout manager uses a per-component string, adds the component `comp` to the layout, associating it with the string specified by `name`.

Specified by:
  `addLayoutComponent` in interface `LayoutManager`
Parameters:
  `name` - the string to be associated with the component
  `comp` - the component to be added

### removeLayoutComponent

public void removeLayoutComponent(Component comp)
Description copied from interface: `LayoutManager`
Removes the specified component from the layout.

Specified by:
  `removeLayoutComponent` in interface `LayoutManager`
Parameters:
  `comp` - the component to be removed

### addLayoutComponent

public void addLayoutComponent(Component comp, Object constraints)
Description copied from interface: `LayoutManager2`
Adds the specified component to the layout, using the specified constraint object.

Specified by:
  `addLayoutComponent` in interface `LayoutManager2`
Parameters:
  `comp` - the component to be added
  `constraints` - where/how the component is added to the layout.

### getLayoutAlignmentX

public float getLayoutAlignmentX(Container target)
Description copied from interface: `LayoutManager2`
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.

Specified by:
  `getLayoutAlignmentX` in interface `LayoutManager2`
Parameters:
  `target` - the target container
Returns:
  the x-axis alignment preference

### getLayoutAlignmentY

public float getLayoutAlignmentY(Container target)
Description copied from interface: `LayoutManager2`
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.

Specified by:
  `getLayoutAlignmentY` in interface `LayoutManager2`
Parameters:
  `target` - the target container
Returns:
  the y-axis alignment preference

### invalidateLayout

public void invalidateLayout(Container target)
Description copied from interface: `LayoutManager2`
Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.

Specified by:
  `invalidateLayout` in interface `LayoutManager2`
Parameters:
  `target` - the target container