javax.swing

Class OverlayLayout

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, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

OverlayLayout

public OverlayLayout(Container target)
Creates a new OverlayLayout for the specified container.
Parameters:
target - the container to be laid out

Method Details

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

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

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

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

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

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

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

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

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

OverlayLayout.java -- A layout manager Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.