public class OverlapLayout extends Object implements LayoutManager2, Serializable
OverlapLayout class is a layout manager that lays out a
container's components in an overlapping fashion. A component can be painted
"above" or "below" the previous component in the container.
Like the GridLayout, each component is sized to the largest width and height
of any component in the container. The amount of overlap is controlled by
specifying the overlap postion of each component. You can simulate,
left-to-right, right-to-left, top-to-bottom, bottom-to-top and diagonal
layouts. As well you can "stack" components completely on top of one another.
In this case the components are sized to the space available in the
container.
A main usage for this layout might be in the creation of "card games". A few
features have been added that might be handy in these cases:
a) a "popup" feature - when a component is selected in can "popup" from its
regular location so it visibly stands out. To accomplish this some extra
space must be reserved in the container for the popup. This is done by using
the setPopupInsets method which allow you to control the popup direction. In
addition you can add/remove a simple constraint to the component. POP_UP will
popup the component. POP_DOWN or null will paint the component in its regular
location. b) when a component is made "invisible" you can reserve its
location in the container so all the other components don't shift.
Note: this layout is achieved by changing the ZOrder of components in the
container. It will not work for all components as some compnents will always
paint themselves on the top of others. This seems to happen with components
like JButton as rollover effects are painted when a mouse moves over the
components.
sources from: https://tips4java.wordpress.com/2009/08/02/disabled-panel/| Modifier and Type | Field and Description |
|---|---|
static Boolean |
POP_DOWN |
static Boolean |
POP_UP |
| Constructor and Description |
|---|
OverlapLayout()
Convenience constructor to provide for "stacking" of components.
|
OverlapLayout(Point overlapPosition)
Convenience constructor.
|
OverlapLayout(Point overlapPosition,
boolean overlapAbove)
Create an overlapping layout.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addLayoutComponent(Component component,
Object constraint) |
void |
addLayoutComponent(String name,
Component comp)
Adds the specified component with the specified name to the layout.
|
int |
convertIndex(int index)
When components are overlapped above the ZOrder of each component is
changed resulting in the components position in the container being
changed.For example when you add a component to the end of the container
it will be moved to the beginning.
|
Boolean |
getConstraints(Component component)
Gets the constraints for the specified component.
|
float |
getLayoutAlignmentX(Container parent)
Returns the alignment along the x axis.
|
float |
getLayoutAlignmentY(Container parent)
Returns the alignment along the y axis.
|
Point |
getOverlapPosition()
Get the overlapping position of each component
|
Insets |
getPopupInsets()
Get the popup insets
|
void |
invalidateLayout(Container target)
Invalidates the layout, indicating that if the layout manager has cached
information it should be discarded.
|
boolean |
isIncludeInvisible()
Get the include invisible property
|
void |
layoutContainer(Container parent)
Lays out the specified container using this layout.
|
Dimension |
maximumLayoutSize(Container target)
There is no maximum.
|
Dimension |
minimumLayoutSize(Container parent)
Determine the minimum size on the Container
|
Dimension |
preferredLayoutSize(Container parent)
Determine the preferred size on the Container
|
void |
removeLayoutComponent(Component component)
Removes the specified component from the layout.
|
void |
setIncludeInvisible(boolean includeInvisible)
Controls whether spaces should reserved for invisible components in the
container
|
void |
setOverlapPosition(Point overlapPosition)
Specify the position where the overlapped component should be painted.
|
void |
setPopupInsets(Insets popupInsets)
Define extra space to be reserved by the container.
|
String |
toString()
Returns the string representation of this column layout's values.
|
public OverlapLayout()
public OverlapLayout(Point overlapPosition)
overlapPosition - a Point defining the relative amount of overlappublic OverlapLayout(Point overlapPosition, boolean overlapAbove)
overlapPosition - a Point defining the relative amount of overlapoverlapAbove - when true components are painted above the previous
component, otherwise they are painted below.public int convertIndex(int index)
index - the index to convertpublic boolean isIncludeInvisible()
public void setIncludeInvisible(boolean includeInvisible)
includeInvisible - when true, space is reserved otherwise the
component is not included in the layout sizingpublic Point getOverlapPosition()
public void setOverlapPosition(Point overlapPosition)
overlapPosition - the position where the next component is paintedpublic Insets getPopupInsets()
public void setPopupInsets(Insets popupInsets)
popupInsets - Insets defining extra space for a particular side of
the container.public Boolean getConstraints(Component component)
component - the component to be queriedpublic void addLayoutComponent(String name, Component comp)
addLayoutComponent in interface LayoutManagername - the name of the componentcomp - the component to be addedpublic void addLayoutComponent(Component component, Object constraint)
addLayoutComponent in interface LayoutManager2public void removeLayoutComponent(Component component)
removeLayoutComponent in interface LayoutManagercomponent - the component to be removedpublic Dimension minimumLayoutSize(Container parent)
minimumLayoutSize in interface LayoutManagerparent - the container in which to do the layoutpublic Dimension preferredLayoutSize(Container parent)
preferredLayoutSize in interface LayoutManagerparent - the container in which to do the layoutpublic void layoutContainer(Container parent)
layoutContainer in interface LayoutManagerparent - the container in which to do the layoutpublic Dimension maximumLayoutSize(Container target)
maximumLayoutSize in interface LayoutManager2public float getLayoutAlignmentX(Container parent)
getLayoutAlignmentX in interface LayoutManager2public float getLayoutAlignmentY(Container parent)
getLayoutAlignmentY in interface LayoutManager2public void invalidateLayout(Container target)
invalidateLayout in interface LayoutManager2Copyright © 2022 vpc open source initiative. All rights reserved.