JLayeredPane (Java Platform SE 8 )
Keywords: javax.swing.JLayeredPane class
Date: 2026-03-16

javax.swing

## Class JLayeredPane

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JLayeredPane

- All Implemented Interfaces:
    ImageObserver, MenuContainer, Serializable, Accessible
  Direct Known Subclasses:
    JDesktopPane

      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 JavaBeans™ has been added to the `java.beans` package. Please see `XMLEncoder`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `JLayeredPane.AccessibleJLayeredPane` This class implements accessibility support for the `JLayeredPane` class.

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Integer` | `DEFAULT_LAYER` Convenience object defining the Default layer.
    `static Integer` | `DRAG_LAYER` Convenience object defining the Drag layer.
    `static Integer` | `FRAME_CONTENT_LAYER` Convenience object defining the Frame Content layer.
    `static String` | `LAYER_PROPERTY` Bound property
    `static Integer` | `MODAL_LAYER` Convenience object defining the Modal layer.
    `static Integer` | `PALETTE_LAYER` Convenience object defining the Palette layer.
    `static Integer` | `POPUP_LAYER` Convenience object defining the Popup layer.

    - ### Fields inherited from class javax.swing.JComponent

      `listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JLayeredPane()` Create a new JLayeredPane

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addImpl(Component comp, Object constraints, int index)` Adds the specified component to this container at the specified index.
    `AccessibleContext` | `getAccessibleContext()` Gets the AccessibleContext associated with this JLayeredPane.
    `int` | `getComponentCountInLayer(int layer)` Returns the number of children currently in the specified layer.
    `Component[]` | `getComponentsInLayer(int layer)` Returns an array of the components in the specified layer.
    `protected Hashtable<Component,Integer>` | `getComponentToLayer()` Returns the hashtable that maps components to layers.
    `int` | `getIndexOf(Component c)` Returns the index of the specified Component.
    `int` | `getLayer(Component c)` Returns the layer attribute for the specified Component.
    `static int` | `getLayer(JComponent c)` Gets the layer property for a JComponent, it does not cause any side effects like setLayer().
    `static JLayeredPane` | `getLayeredPaneAbove(Component c)` Convenience method that returns the first JLayeredPane which contains the specified component.
    `protected Integer` | `getObjectForLayer(int layer)` Returns the Integer object associated with a specified layer.
    `int` | `getPosition(Component c)` Get the relative position of the component within its layer.
    `int` | `highestLayer()` Returns the highest layer value from all current children.
    `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.
    `boolean` | `isOptimizedDrawingEnabled()` Returns false if components in the pane can overlap, which makes optimized drawing impossible.
    `int` | `lowestLayer()` Returns the lowest layer value from all current children.
    `void` | `moveToBack(Component c)` Moves the component to the bottom of the components in its current layer (position -1).
    `void` | `moveToFront(Component c)` Moves the component to the top of the components in its current layer (position 0).
    `void` | `paint(Graphics g)` Paints this JLayeredPane within the specified graphics context.
    `protected String` | `paramString()` Returns a string representation of this JLayeredPane.
    `static void` | `putLayer(JComponent c, int layer)` Sets the layer property on a JComponent.
    `void` | `remove(int index)` Remove the indexed component from this pane.
    `void` | `removeAll()` Removes all the components from this container.
    `void` | `setLayer(Component c, int layer)` Sets the layer attribute on the specified component, making it the bottommost component in that layer.
    `void` | `setLayer(Component c, int layer, int position)` Sets the layer attribute for the specified component and also sets its position within that layer.
    `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.

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### DEFAULT_LAYER

          public static final Integer DEFAULT_LAYER

      Convenience object defining the Default layer. Equivalent to new Integer(0).

    - #### PALETTE_LAYER

          public static final Integer PALETTE_LAYER

      Convenience object defining the Palette layer. Equivalent to new Integer(100).

    - #### MODAL_LAYER

          public static final Integer MODAL_LAYER

      Convenience object defining the Modal layer. Equivalent to new Integer(200).

    - #### POPUP_LAYER

          public static final Integer POPUP_LAYER

      Convenience object defining the Popup layer. Equivalent to new Integer(300).

    - #### 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 position the contentPane and menuBar components of JFrame. Equivalent to new Integer(-30000).
      See Also:
        `JFrame`

    - #### LAYER_PROPERTY

          public static final String LAYER_PROPERTY

      Bound property
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### JLayeredPane

          public JLayeredPane()

      Create a new JLayeredPane

  - ### Method Detail

    - #### addImpl

          protected void addImpl(Component comp,
                                 Object constraints,
                                 int index)

      Description copied from class: `Container`
      Adds the specified component to this container at the specified index. This method also notifies the layout manager to add the component to this container's layout using the specified constraints object via the `addLayoutComponent` method.

      The constraints are defined by the particular layout manager being used. For example, the `BorderLayout` class defines five constraints: `BorderLayout.NORTH`, `BorderLayout.SOUTH`, `BorderLayout.EAST`, `BorderLayout.WEST`, and `BorderLayout.CENTER`.

      The `GridBagLayout` class requires a `GridBagConstraints` object. Failure to pass the correct type of constraints object results in an `IllegalArgumentException`.

      If the current layout manager implements `LayoutManager2`, then `LayoutManager2.addLayoutComponent(Component,Object)` is invoked on it. If the current layout manager does not implement `LayoutManager2`, and constraints is a `String`, then `LayoutManager.addLayoutComponent(String,Component)` is invoked on it.

      If the component is not an ancestor of this container and has a non-null parent, it is removed from its current parent before it is added to this container.

      This is the method to override if a program needs to track every add request to a container as all other add methods defer to this one. An overriding method should usually include a call to the superclass's version of the method:

      > `super.addImpl(comp, constraints, index)`

      This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to display the added component.

      Overrides:
        `addImpl` in class `Container`
      Parameters:
        `comp` - the component to be added
        `constraints` - an object expressing layout constraints for this component
        `index` - the position in the container's list at which to insert the component, where `-1` means append to the end
      See Also:
        `Container.add(Component)`, `Container.add(Component, int)`, `Container.add(Component, java.lang.Object)`, `Container.invalidate()`, `LayoutManager`, `LayoutManager2`

    - #### 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
      See Also:
        `getIndexOf(java.awt.Component)`

    - #### removeAll

          public void removeAll()

      Removes all the components from this container.
      Overrides:
        `removeAll` in class `Container`
      Since:
        1.5
      See Also:
        `Container.add(java.awt.Component)`, `Container.remove(int)`, `Container.invalidate()`

    - #### 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
      See Also:
        `JComponent.isOptimizedDrawingEnabled()`

    - #### 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
      See Also:
        `setLayer(java.awt.Component, int)`

    - #### 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
      See Also:
        `JFrame`, `JRootPane`

    - #### 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

    - #### 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

    - #### 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

    - #### 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
      See Also:
        `setPosition(Component, int)`

    - #### 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
      See Also:
        `setPosition(Component, int)`

    - #### 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

    - #### 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
      See Also:
        `getComponentCountInLayer(int)`

    - #### 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

    - #### 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

    - #### 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

    - #### 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
      See Also:
        `JComponent.paintComponent(java.awt.Graphics)`, `JComponent.paintBorder(java.awt.Graphics)`, `JComponent.paintChildren(java.awt.Graphics)`, `JComponent.getComponentGraphics(java.awt.Graphics)`, `JComponent.repaint(long, int, int, int, int)`

    - #### getComponentToLayer

          protected Hashtable<Component,Integer> getComponentToLayer()

      Returns the hashtable that maps components to layers.
      Returns:
        the Hashtable used to map components to their layers

    - #### 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

    - #### 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
      See Also:
        `getIndexOf(java.awt.Component)`

    - #### 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.

    - #### 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.
      Specified by:
        `getAccessibleContext` in interface `Accessible`
      Overrides:
        `getAccessibleContext` in class `Component`
      Returns:
        an AccessibleJLayeredPane that serves as the AccessibleContext of this JLayeredPane

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.