This documentation differs from the official API.
Jadeite adds
extra features to the API including:
variable font sizes,
constructions examples,
placeholders for classes and methods, and auto-generated “See Also” links.
Additionally it
is missing some items found in standard Javadoc documentation, including:
generics type information,
“Deprecated” tags and comments,
“See Also” links,
along with other minor differences.
Please send any questions or feedback to
bam@cs.cmu.edu.
javax.swing
class JLayeredPane
- All Implemented Interfaces:
- MenuContainer, ImageObserver, Serializable, Accessible, TransferHandler.HasGetTransferHandler
- Direct Known Subclasses:
- JDesktopPane
-
Most common way to construct:
-
JLayeredPane LPane = new JLayeredPane();
Based on 10 examples
public class JLayeredPane
extends JComponent
implements Accessible
JLayeredPane
adds depth to a JFC/Swing container,
allowing components to overlap each other when needed.
An Integer
object specifies each component's depth in the
container, where higher-numbered components sit "on top" of other
components.
For task-oriented documentation and examples of using layered panes see
How to Use a Layered Pane,
a section in The Java Tutorial.
For convenience, JLayeredPane
divides the depth-range
into several different layers. Putting a component into one of those
layers makes it easy to ensure that components overlap properly,
without having to worry about specifying numbers for specific depths:
- DEFAULT_LAYER
- The standard layer, where most components go. This the bottommost
layer.
- PALETTE_LAYER
- The palette layer sits over the default layer. Useful for floating
toolbars and palettes, so they can be positioned above other components.
- MODAL_LAYER
- The layer used for modal dialogs. They will appear on top of any
toolbars, palettes, or standard components in the container.
- POPUP_LAYER
- The popup layer displays above dialogs. That way, the popup windows
associated with combo boxes, tooltips, and other help text will appear
above the component, palette, or dialog that generated them.
- DRAG_LAYER
- When dragging a component, reassigning it to the drag layer ensures
that it is positioned over every other component in the container. When
finished dragging, it can be reassigned to its normal layer.
The JLayeredPane
methods moveToFront(Component)
,
moveToBack(Component)
and setPosition
can be used
to reposition a component within its layer. The setLayer
method
can also be used to change the component's current layer.
Details
JLayeredPane
manages its list of children like
Container
, but allows for the definition of a several
layers within itself. Children in the same layer are managed exactly
like the normal Container
object,
with the added feature that when children components overlap, children
in higher layers display above the children in lower layers.
Each layer is a distinct integer number. The layer attribute can be set
on a Component
by passing an Integer
object during the add call.
For example:
layeredPane.add(child, JLayeredPane.DEFAULT_LAYER);
or
layeredPane.add(child, new Integer(10));
The layer attribute can also be set on a Component by calling
layeredPaneParent.setLayer(child, 10)
on the JLayeredPane
that is the parent of component. The layer
should be set before adding the child to the parent.
Higher number layers display above lower number layers. So, using
numbers for the layers and letters for individual components, a
representative list order would look like this:
5a, 5b, 5c, 2a, 2b, 2c, 1a
where the leftmost components are closest to the top of the display.
A component can be moved to the top or bottom position within its
layer by calling moveToFront
or moveToBack
.
The position of a component within a layer can also be specified directly.
Valid positions range from 0 up to one less than the number of
components in that layer. A value of -1 indicates the bottommost
position. A value of 0 indicates the topmost position. Unlike layer
numbers, higher position values are lower in the display.
Note: This sequence (defined by java.awt.Container) is the reverse
of the layer numbering sequence. Usually though, you will use moveToFront
,
moveToBack
, and setLayer
.
Here are some examples using the method add(Component, layer, position):
Calling add(5x, 5, -1) results in:
5a, 5b, 5c, 5x, 2a, 2b, 2c, 1a
Calling add(5z, 5, 2) results in:
5a, 5b, 5z, 5c, 5x, 2a, 2b, 2c, 1a
Calling add(3a, 3, 7) results in:
5a, 5b, 5z, 5c, 5x, 3a, 2a, 2b, 2c, 1a
Using normal paint/event mechanics results in 1a appearing at the bottom
and 5a being above all other components.
Note: that these layers are simply a logical construct and LayoutManagers
will affect all child components of this container without regard for
layer settings.
Warning: Swing is not thread safe. For more
information see Swing's Threading
Policy.
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 JavaBeansTM
has been added to the java.beans
package.
Please see {@link java.beans.XMLEncoder}.
Nested Class Summary |
protected class |
This class implements accessibility support for the
JLayeredPane class. |
Constructor Summary |
Create a new JLayeredPane
|
Method Summary |
protected void |
Adds the specified component to this container at the specified
index.
|
AccessibleContext |
Gets the AccessibleContext associated with this JLayeredPane.
|
int |
Returns the number of children currently in the specified layer.
|
Component[] |
Returns an array of the components in the specified layer.
|
protected Hashtable |
Returns the hashtable that maps components to layers.
|
int |
Returns the index of the specified Component.
|
int |
Returns the layer attribute for the specified Component.
|
static int |
Gets the layer property for a JComponent, it
does not cause any side effects like setLayer().
|
static JLayeredPane |
Convenience method that returns the first JLayeredPane which
contains the specified component.
|
protected Integer |
Returns the Integer object associated with a specified layer.
|
int |
Get the relative position of the component within its layer.
|
int |
Returns the highest layer value from all current children.
|
protected int |
Primitive method that determines the proper location to
insert a new child based on layer and position requests.
|
boolean |
Returns false if components in the pane can overlap, which makes
optimized drawing impossible.
|
int |
Returns the lowest layer value from all current children.
|
void |
Moves the component to the bottom of the components in its current layer
(position -1).
|
void |
Moves the component to the top of the components in its current layer
(position 0).
|
void |
Paints this JLayeredPane within the specified graphics context.
|
protected String |
Returns a string representation of this JLayeredPane.
|
static void |
Sets the layer property on a JComponent.
|
void |
Remove the indexed component from this pane.
|
void |
Removes all the components from this container.
|
void |
Sets the layer attribute on the specified component,
making it the bottommost component in that layer.
|
void |
Sets the layer attribute for the specified component and
also sets its position within that layer.
|
void |
Moves the component to position within its current layer,
where 0 is the topmost position within the layer and -1 is the bottommost
position.
|
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree |
Methods inherited from class java.awt.Component |
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_LAYER
public static final Integer DEFAULT_LAYER
-
Convenience object defining the Default layer. Equivalent to new Integer(0).
DRAG_LAYER
public static final Integer DRAG_LAYER
-
Convenience object defining the Drag layer. Equivalent to new Integer(400).
FRAME_CONTENT_LAYER
public static final Integer FRAME_CONTENT_LAYER
-
Convenience object defining the Frame Content layer.
This layer is normally only use to positon the contentPane and menuBar
components of JFrame.
Equivalent to new Integer(-30000).
LAYER_PROPERTY
public static final String LAYER_PROPERTY
-
Bound property
MODAL_LAYER
public static final Integer MODAL_LAYER
-
Convenience object defining the Modal layer. Equivalent to new Integer(200).
PALETTE_LAYER
public static final Integer PALETTE_LAYER
-
Convenience object defining the Palette layer. Equivalent to new Integer(100).
POPUP_LAYER
public static final Integer POPUP_LAYER
-
Convenience object defining the Popup layer. Equivalent to new Integer(300).
JLayeredPane
public JLayeredPane()
-
Create a new JLayeredPane
addImpl
protected void addImpl(Component comp,
Object constraints,
int index)
-
- Overrides:
addImpl
in class Container
- Parameters:
comp
constraints
index
getAccessibleContext
public AccessibleContext getAccessibleContext()
-
Gets the AccessibleContext associated with this JLayeredPane.
For layered panes, the AccessibleContext takes the form of an
AccessibleJLayeredPane.
A new AccessibleJLayeredPane instance is created if necessary.
- Overrides:
getAccessibleContext
in class JComponent
- Returns:
- an AccessibleJLayeredPane that serves as the
AccessibleContext of this JLayeredPane
getComponentCountInLayer
public int getComponentCountInLayer(int layer)
-
Returns the number of children currently in the specified layer.
- Parameters:
layer
- an int specifying the layer to check
- Returns:
- an int specifying the number of components in that layer
getComponentsInLayer
public Component[] getComponentsInLayer(int layer)
-
Returns an array of the components in the specified layer.
- Parameters:
layer
- an int specifying the layer to check
- Returns:
- an array of Components contained in that layer
getComponentToLayer
protected Hashtable getComponentToLayer()
-
Returns the hashtable that maps components to layers.
- Returns:
- the Hashtable used to map components to their layers
getIndexOf
public int getIndexOf(Component c)
-
Returns the index of the specified Component.
This is the absolute index, ignoring layers.
Index numbers, like position numbers, have the topmost component
at index zero. Larger numbers are closer to the bottom.
- Parameters:
c
- the Component to check
- Returns:
- an int specifying the component's index
getLayer
public int getLayer(Component c)
-
Returns the layer attribute for the specified Component.
- Parameters:
c
- the Component to check
- Returns:
- an int specifying the component's current layer
getLayer
public static int getLayer(JComponent c)
-
Gets the layer property for a JComponent, it
does not cause any side effects like setLayer(). (painting, add/remove, etc)
Normally you should use the instance method getLayer().
- Parameters:
c
- the JComponent to check
- Returns:
- an int specifying the component's layer
getLayeredPaneAbove
public static JLayeredPane getLayeredPaneAbove(Component c)
-
Convenience method that returns the first JLayeredPane which
contains the specified component. Note that all JFrames have a
JLayeredPane at their root, so any component in a JFrame will
have a JLayeredPane parent.
- Parameters:
c
- the Component to check
- Returns:
- the JLayeredPane that contains the component, or
null if no JLayeredPane is found in the component
hierarchy
getObjectForLayer
protected Integer getObjectForLayer(int layer)
-
Returns the Integer object associated with a specified layer.
- Parameters:
layer
- an int specifying the layer
- Returns:
- an Integer object for that layer
getPosition
public int getPosition(Component c)
-
Get the relative position of the component within its layer.
- Parameters:
c
- the Component to check
- Returns:
- an int giving the component's position, where 0 is the
topmost position and the highest index value = the count
count of components at that layer, minus 1
highestLayer
public int highestLayer()
-
Returns the highest layer value from all current children.
Returns 0 if there are no children.
- Returns:
- an int indicating the layer of the topmost component in the
pane, or zero if there are no children
insertIndexForLayer
protected int insertIndexForLayer(int layer,
int position)
-
Primitive method that determines the proper location to
insert a new child based on layer and position requests.
- Parameters:
layer
- an int specifying the layer
position
- an int specifying the position within the layer
- Returns:
- an int giving the (absolute) insertion-index
isOptimizedDrawingEnabled
public boolean isOptimizedDrawingEnabled()
-
Returns false if components in the pane can overlap, which makes
optimized drawing impossible. Otherwise, returns true.
- Overrides:
isOptimizedDrawingEnabled
in class JComponent
- Returns:
- false if components can overlap, else true
lowestLayer
public int lowestLayer()
-
Returns the lowest layer value from all current children.
Returns 0 if there are no children.
- Returns:
- an int indicating the layer of the bottommost component in the
pane, or zero if there are no children
moveToBack
public void moveToBack(Component c)
-
Moves the component to the bottom of the components in its current layer
(position -1).
- Parameters:
c
- the Component to move
moveToFront
public void moveToFront(Component c)
-
Moves the component to the top of the components in its current layer
(position 0).
- Parameters:
c
- the Component to move
paint
public void paint(Graphics g)
-
Paints this JLayeredPane within the specified graphics context.
- Overrides:
paint
in class JComponent
- Parameters:
g
- the Graphics context within which to paint
paramString
protected String paramString()
-
Returns a string representation of this JLayeredPane. This method
is intended to be used only for debugging purposes, and the
content and format of the returned string may vary between
implementations. The returned string may be empty but may not
be
null
.
- Overrides:
paramString
in class JComponent
- Returns:
- a string representation of this JLayeredPane.
putLayer
public static void putLayer(JComponent c,
int layer)
-
Sets the layer property on a JComponent. This method does not cause
any side effects like setLayer() (painting, add/remove, etc).
Normally you should use the instance method setLayer(), in order to
get the desired side-effects (like repainting).
- Parameters:
c
- the JComponent to move
layer
- an int specifying the layer to move it to
remove
public void remove(int index)
-
Remove the indexed component from this pane.
This is the absolute index, ignoring layers.
- Overrides:
remove
in class Container
- Parameters:
index
- an int specifying the component to remove
removeAll
public void removeAll()
-
Removes all the components from this container.
- Overrides:
removeAll
in class Container
setLayer
public void setLayer(Component c,
int layer)
-
Sets the layer attribute on the specified component,
making it the bottommost component in that layer.
Should be called before adding to parent.
- Parameters:
c
- the Component to set the layer for
layer
- an int specifying the layer to set, where
lower numbers are closer to the bottom
setLayer
public void setLayer(Component c,
int layer,
int position)
-
Sets the layer attribute for the specified component and
also sets its position within that layer.
- Parameters:
c
- the Component to set the layer for
layer
- an int specifying the layer to set, where
lower numbers are closer to the bottom
position
- an int specifying the position within the
layer, where 0 is the topmost position and -1
is the bottommost position
setPosition
public void setPosition(Component c,
int position)
-
Moves the component to
position
within its current layer,
where 0 is the topmost position within the layer and -1 is the bottommost
position.
Note: Position numbering is defined by java.awt.Container, and
is the opposite of layer numbering. Lower position numbers are closer
to the top (0 is topmost), and higher position numbers are closer to
the bottom.
- Parameters:
c
- the Component to move
position
- an int in the range -1..N-1, where N is the number of
components in the component's current layer
This documentation differs from the official API.
Jadeite adds
extra features to the API including:
variable font sizes,
constructions examples,
placeholders for classes and methods, and auto-generated “See Also” links.
Additionally it
is missing some items found in standard Javadoc documentation, including:
generics type information,
“Deprecated” tags and comments,
“See Also” links,
along with other minor differences.
Please send any questions or feedback to
bam@cs.cmu.edu.
This page displays the
Jadeite version of the documention, which is derived from the offical documentation that contains this copyright notice:
The official Sun™ documentation can be found here at
http://java.sun.com/javase/6/docs/api/.