Module java.desktop
Package javax.swing

## Class JPanel

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

- All Implemented Interfaces:
    `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`
  Direct Known Subclasses:
    `AbstractColorChooserPanel`, `JSpinner.DefaultEditor`

      @JavaBean(defaultProperty="UI",
                description="A generic lightweight container.")
      public class JPanel
      extends JComponent
      implements Accessible

  `JPanel` is a generic lightweight container. For examples and task-oriented documentation for JPanel, see How to Use Panels, a section in The Java Tutorial.

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

  Since:
    1.2

- - ### Nested Class Summary

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

    - ### Nested classes/interfaces declared in class javax.swing.JComponent

      `JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces declared in class java.awt.Container

      `Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces declared in class java.awt.Component

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

  - ### Field Summary

    - ### Fields declared in class javax.swing.JComponent

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

    - ### Fields declared in class java.awt.Component

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

    - ### Fields declared in interface java.awt.image.ImageObserver

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

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JPanel()` | Creates a new `JPanel` with a double buffer and a flow layout.
    `JPanel​(boolean isDoubleBuffered)` | Creates a new `JPanel` with `FlowLayout` and the specified buffering strategy.
    `JPanel​(LayoutManager layout)` | Create a new buffered JPanel with the specified layout manager
    `JPanel​(LayoutManager layout, boolean isDoubleBuffered)` | Creates a new JPanel with the specified layout manager and buffering strategy.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `AccessibleContext` | `getAccessibleContext()` | Gets the AccessibleContext associated with this JPanel.
    `PanelUI` | `getUI()` | Returns the look and feel (L&F) object that renders this component.
    `String` | `getUIClassID()` | Returns a string that specifies the name of the L&F class that renders this component.
    `protected String` | `paramString()` | Returns a string representation of this JPanel.
    `void` | `setUI​(PanelUI ui)` | Sets the look and feel (L&F) object that renders this component.
    `void` | `updateUI()` | Resets the UI property with a value from the current look and feel.

    - ### Methods declared in class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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`

    - ### Methods declared in class java.awt.Container

      `add, add, add, add, add, addContainerListener, addImpl, 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, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

    - ### Methods declared in 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, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### JPanel

          public JPanel​(LayoutManager layout,
                        boolean isDoubleBuffered)

      Creates a new JPanel with the specified layout manager and buffering strategy.
      Parameters:
        `layout` - the LayoutManager to use
        `isDoubleBuffered` - a boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates

    - #### JPanel

          public JPanel​(LayoutManager layout)

      Create a new buffered JPanel with the specified layout manager
      Parameters:
        `layout` - the LayoutManager to use

    - #### JPanel

          public JPanel​(boolean isDoubleBuffered)

      Creates a new `JPanel` with `FlowLayout` and the specified buffering strategy. If `isDoubleBuffered` is true, the `JPanel` will use a double buffer.
      Parameters:
        `isDoubleBuffered` - a boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates

    - #### JPanel

          public JPanel()

      Creates a new `JPanel` with a double buffer and a flow layout.

  - ### Method Detail

    - #### updateUI

          public void updateUI()

      Resets the UI property with a value from the current look and feel.
      Overrides:
        `updateUI` in class `JComponent`
      See Also:
        `JComponent.updateUI()`

    - #### getUI

          public PanelUI getUI()

      Returns the look and feel (L&F) object that renders this component.
      Overrides:
        `getUI` in class `JComponent`
      Returns:
        the PanelUI object that renders this component
      Since:
        1.4

    - #### setUI

          @BeanProperty(hidden=true,
                        visualUpdate=true,
                        description="The UI object that implements the Component\'s LookAndFeel.")
          public void setUI​(PanelUI ui)

      Sets the look and feel (L&F) object that renders this component.
      Parameters:
        `ui` - the PanelUI L&F object
      Since:
        1.4
      See Also:
        `UIDefaults.getUI(javax.swing.JComponent)`

    - #### getUIClassID

          @BeanProperty(bound=false,
                        expert=true,
                        description="A string that specifies the name of the L&F class.")
          public String getUIClassID()

      Returns a string that specifies the name of the L&F class that renders this component.
      Overrides:
        `getUIClassID` in class `JComponent`
      Returns:
        the string "PanelUI"
      See Also:
        `JComponent.getUIClassID()`, `UIDefaults.getUI(javax.swing.JComponent)`

    - #### paramString

          protected String paramString()

      Returns a string representation of this JPanel. 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 JPanel.

    - #### getAccessibleContext

          @BeanProperty(bound=false)
          public AccessibleContext getAccessibleContext()

      Gets the AccessibleContext associated with this JPanel. For JPanels, the AccessibleContext takes the form of an AccessibleJPanel. A new AccessibleJPanel instance is created if necessary.
      Specified by:
        `getAccessibleContext` in interface `Accessible`
      Overrides:
        `getAccessibleContext` in class `Component`
      Returns:
        an AccessibleJPanel that serves as the AccessibleContext of this JPanel