javax.swing
Class OverlayLayout

java.lang.Object
  extended by javax.swing.OverlayLayout
All Implemented Interfaces:
LayoutManager, LayoutManager2, Serializable

public class OverlayLayout
extends Object
implements LayoutManager2, Serializable

A layout manager that lays out the components of a container one over another. The components take as much space as is available in the container, but not more than specified by their maximum size. The overall layout is mainly affected by the components alignmentX and alignmentY properties. All components are aligned, so that their alignment points (for either direction) are placed in one line (the baseline for this direction). For example: An X alignment of 0.0 means that the component's alignment point is at it's left edge, an X alignment of 0.5 means that the alignment point is in the middle, an X alignment of 1.0 means, the aligment point is at the right edge. So if you have three components, the first with 0.0, the second with 0.5 and the third with 1.0, then they are laid out like this:

          +-------+
          |   1   |
          +-------+
      +-------+
      |   2   |
      +-------+
 +---------+
 |    3    +
 +---------+
 
The above picture shows the X alignment between the components. An Y alignment like shown above cannot be achieved with this layout manager. The components are place on top of each other, with the X alignment shown above.

See Also:
Serialized Form

Constructor Summary
OverlayLayout(Container target)
          Creates a new OverlayLayout for the specified container.
 
Method Summary
 void addLayoutComponent(Component component, Object constraints)
          This method is not used in this layout manager.
 void addLayoutComponent(String string, Component component)
          This method is not used in this layout manager.
 float getLayoutAlignmentX(Container target)
          Returns the X alignment of the container that is laid out.
 float getLayoutAlignmentY(Container target)
          Returns the Y alignment of the container that is laid out.
 void invalidateLayout(Container target)
          Notifies the layout manager that the layout has become invalid.
 void layoutContainer(Container target)
          Lays out the container and it's children.
 Dimension maximumLayoutSize(Container target)
          Returns the maximum size of the container that is laid out.
 Dimension minimumLayoutSize(Container target)
          Returns the minimum size of the container that is laid out.
 Dimension preferredLayoutSize(Container target)
          Returns the preferred size of the container that is laid out.
 void removeLayoutComponent(Component component)
          This method is not used in this layout manager.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OverlayLayout

public OverlayLayout(Container target)
Creates a new OverlayLayout for the specified container.

Parameters:
target - the container to be laid out
Method Detail

invalidateLayout

public void invalidateLayout(Container target)
Notifies the layout manager that the layout has become invalid. It throws away cached layout information and recomputes it the next time it is requested.

Specified by:
invalidateLayout in interface LayoutManager2
Parameters:
target - not used here

addLayoutComponent

public void addLayoutComponent(String string,
                               Component component)
This method is not used in this layout manager.

Specified by:
addLayoutComponent in interface LayoutManager
Parameters:
string - not used here
component - not used here

addLayoutComponent

public void addLayoutComponent(Component component,
                               Object constraints)
This method is not used in this layout manager.

Specified by:
addLayoutComponent in interface LayoutManager2
Parameters:
component - not used here
constraints - not used here

removeLayoutComponent

public void removeLayoutComponent(Component component)
This method is not used in this layout manager.

Specified by:
removeLayoutComponent in interface LayoutManager
Parameters:
component - not used here

preferredLayoutSize

public Dimension preferredLayoutSize(Container target)
Returns the preferred size of the container that is laid out. This is computed by the children's preferred sizes, taking their alignments into account.

Specified by:
preferredLayoutSize in interface LayoutManager
Parameters:
target - not used here
Returns:
the preferred size of the container that is laid out
See Also:
LayoutManager.minimumLayoutSize(Container)

minimumLayoutSize

public Dimension minimumLayoutSize(Container target)
Returns the minimum size of the container that is laid out. This is computed by the children's minimum sizes, taking their alignments into account.

Specified by:
minimumLayoutSize in interface LayoutManager
Parameters:
target - not used here
Returns:
the minimum size of the container that is laid out
See Also:
LayoutManager.preferredLayoutSize(Container)

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
Returns the maximum size of the container that is laid out. This is computed by the children's maximum sizes, taking their alignments into account.

Specified by:
maximumLayoutSize in interface LayoutManager2
Parameters:
target - not used here
Returns:
the maximum size of the container that is laid out
See Also:
Component.getMaximumSize()

getLayoutAlignmentX

public float getLayoutAlignmentX(Container target)
Returns the X alignment of the container that is laid out. This is computed by the children's preferred sizes, taking their alignments into account.

Specified by:
getLayoutAlignmentX in interface LayoutManager2
Parameters:
target - not used here
Returns:
the X alignment of the container that is laid out

getLayoutAlignmentY

public float getLayoutAlignmentY(Container target)
Returns the Y alignment of the container that is laid out. This is computed by the children's preferred sizes, taking their alignments into account.

Specified by:
getLayoutAlignmentY in interface LayoutManager2
Parameters:
target - not used here
Returns:
the X alignment of the container that is laid out

layoutContainer

public void layoutContainer(Container target)
Lays out the container and it's children. The children are laid out one over another. The components take as much space as is available in the container, but not more than specified by their maximum size. The overall layout is mainly affected by the components alignmentX and alignmentY properties. All components are aligned, so that their alignment points (for either direction) are placed in one line (the baseline for this direction). For example: An X alignment of 0.0 means that the component's alignment point is at it's left edge, an X alignment of 0.5 means that the alignment point is in the middle, an X alignment of 1.0 means, the aligment point is at the right edge. So if you have three components, the first with 0.0, the second with 0.5 and the third with 1.0, then they are laid out like this:
          +-------+
          |   1   |
          +-------+
      +-------+
      |   2   |
      +-------+
 +---------+
 |    3    +
 +---------+
 
The above picture shows the X alignment between the components. An Y alignment like shown above cannot be achieved with this layout manager. The components are place on top of each other, with the X alignment shown above.

Specified by:
layoutContainer in interface LayoutManager
Parameters:
target - not used here