# Class MetalSplitPaneUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.SplitPaneUI
javax.swing.plaf.basic.BasicSplitPaneUI
javax.swing.plaf.metal.MetalSplitPaneUI

public class MetalSplitPaneUI extends BasicSplitPaneUI
Metal split pane.

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/interfaces declared in class BasicSplitPaneUI

  `BasicSplitPaneUI.BasicHorizontalLayoutManager, BasicSplitPaneUI.BasicVerticalLayoutManager, BasicSplitPaneUI.FocusHandler, BasicSplitPaneUI.KeyboardDownRightHandler, BasicSplitPaneUI.KeyboardEndHandler, BasicSplitPaneUI.KeyboardHomeHandler, BasicSplitPaneUI.KeyboardResizeToggleHandler, BasicSplitPaneUI.KeyboardUpLeftHandler, BasicSplitPaneUI.PropertyHandler`
  Modifier and Type
  Class
  Description
  `class`
  `BasicSplitPaneUI.BasicHorizontalLayoutManager`
  LayoutManager for JSplitPanes that have an orientation of HORIZONTAL_SPLIT.
  `class`
  `BasicSplitPaneUI.BasicVerticalLayoutManager`
  LayoutManager used for JSplitPanes with an orientation of VERTICAL_SPLIT.
  `class`
  `BasicSplitPaneUI.FocusHandler`
  Implementation of the FocusListener that the JSplitPane UI uses.
  `class`
  `BasicSplitPaneUI.KeyboardDownRightHandler`
  Implementation of an ActionListener that the JSplitPane UI uses for handling specific key presses.
  `class`
  `BasicSplitPaneUI.KeyboardEndHandler`
  Implementation of an ActionListener that the JSplitPane UI uses for handling specific key presses.
  `class`
  `BasicSplitPaneUI.KeyboardHomeHandler`
  Implementation of an ActionListener that the JSplitPane UI uses for handling specific key presses.
  `class`
  `BasicSplitPaneUI.KeyboardResizeToggleHandler`
  Implementation of an ActionListener that the JSplitPane UI uses for handling specific key presses.
  `class`
  `BasicSplitPaneUI.KeyboardUpLeftHandler`
  Implementation of an ActionListener that the JSplitPane UI uses for handling specific key presses.
  `class`
  `BasicSplitPaneUI.PropertyHandler`
  Implementation of the PropertyChangeListener that the JSplitPane UI uses.

- ## Field Summary

  ### Fields declared in class BasicSplitPaneUI

  `beginDragDividerLocation, divider, dividerResizeToggleKey, dividerSize, downKey, draggingHW, endKey, focusListener, homeKey, KEYBOARD_DIVIDER_MOVE_OFFSET, keyboardDownRightListener, keyboardEndListener, keyboardHomeListener, keyboardResizeToggleListener, keyboardUpLeftListener, layoutManager, leftKey, NON_CONTINUOUS_DIVIDER, nonContinuousLayoutDivider, propertyChangeListener, rightKey, splitPane, upKey`
  Modifier and Type
  Field
  Description
  `protected int`
  `beginDragDividerLocation`
  Location of the divider when the dragging session began.
  `protected BasicSplitPaneDivider`
  `divider`
  Instance of the divider for this JSplitPane.
  `protected KeyStroke`
  `dividerResizeToggleKey`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected int`
  `dividerSize`
  The size of the divider while the dragging session is valid.
  `protected KeyStroke`
  `downKey`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected boolean`
  `draggingHW`
  Set to true in startDragging if any of the children (not including the nonContinuousLayoutDivider) are heavy weights.
  `protected KeyStroke`
  `endKey`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected FocusListener`
  `focusListener`
  Instance of the FocusListener for this JSplitPane.
  `protected KeyStroke`
  `homeKey`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected static int`
  `KEYBOARD_DIVIDER_MOVE_OFFSET`
  How far (relative) the divider does move when it is moved around by the cursor keys on the keyboard.
  `protected ActionListener`
  `keyboardDownRightListener`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `keyboardEndListener`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `keyboardHomeListener`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `keyboardResizeToggleListener`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `keyboardUpLeftListener`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected BasicSplitPaneUI.BasicHorizontalLayoutManager`
  `layoutManager`
  LayoutManager that is created and placed into the split pane.
  `protected KeyStroke`
  `leftKey`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected static final String`
  `NON_CONTINUOUS_DIVIDER`
  The divider used for non-continuous layout is added to the split pane with this object.
  `protected Component`
  `nonContinuousLayoutDivider`
  Instance for the shadow of the divider when non continuous layout is being used.
  `protected PropertyChangeListener`
  `propertyChangeListener`
  Instance of the PropertyChangeListener for this JSplitPane.
  `protected KeyStroke`
  `rightKey`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected JSplitPane`
  `splitPane`
  JSplitPane instance this instance is providing the look and feel for.
  `protected KeyStroke`
  `upKey`
  Deprecated.
  As of Java 2 platform v1.3.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MetalSplitPaneUI()`
  Constructs a `MetalSplitPaneUI`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `BasicSplitPaneDivider`
  `createDefaultDivider()`
  Creates the default divider.
  `static ComponentUI`
  `createUI(JComponent x)`
  Creates a new `MetalSplitPaneUI` instance

  ### Methods declared in class BasicSplitPaneUI

  `createDefaultNonContinuousLayoutDivider, createFocusListener, createKeyboardDownRightListener, createKeyboardEndListener, createKeyboardHomeListener, createKeyboardResizeToggleListener, createKeyboardUpLeftListener, createPropertyChangeListener, dragDividerTo, finishDraggingTo, finishedPaintingChildren, getDivider, getDividerBorderSize, getDividerLocation, getInsets, getLastDragLocation, getMaximumDividerLocation, getMaximumSize, getMinimumDividerLocation, getMinimumSize, getNonContinuousLayoutDivider, getOrientation, getPreferredSize, getSplitPane, installDefaults, installKeyboardActions, installListeners, installUI, isContinuousLayout, resetLayoutManager, resetToPreferredSizes, setContinuousLayout, setDividerLocation, setLastDragLocation, setNonContinuousLayoutDivider, setNonContinuousLayoutDivider, setOrientation, startDragging, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI`
  Modifier and Type
  Method
  Description
  `protected Component`
  `createDefaultNonContinuousLayoutDivider()`
  Returns the default non continuous layout divider, which is an instance of `Canvas` that fills in the background with dark gray.
  `protected FocusListener`
  `createFocusListener()`
  Creates a `FocusListener` for the `JSplitPane` UI.
  `protected ActionListener`
  `createKeyboardDownRightListener()`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `createKeyboardEndListener()`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `createKeyboardHomeListener()`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `createKeyboardResizeToggleListener()`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected ActionListener`
  `createKeyboardUpLeftListener()`
  Deprecated.
  As of Java 2 platform v1.3.
  `protected PropertyChangeListener`
  `createPropertyChangeListener()`
  Creates a `PropertyChangeListener` for the `JSplitPane` UI.
  `protected void`
  `dragDividerTo(int location)`
  Messaged during a dragging session to move the divider to the passed in `location`.
  `protected void`
  `finishDraggingTo(int location)`
  Messaged to finish the dragging session.
  `void`
  `finishedPaintingChildren(JSplitPane sp, Graphics g)`
  Called when the specified split pane has finished painting its children.
  `BasicSplitPaneDivider`
  `getDivider()`
  Returns the divider between the top Components.
  `protected int`
  `getDividerBorderSize()`
  Deprecated.
  As of Java 2 platform v1.3, instead set the border on the divider.
  `int`
  `getDividerLocation(JSplitPane jc)`
  Returns the location of the divider, which may differ from what the splitpane thinks the location of the divider is.
  `Insets`
  `getInsets(JComponent jc)`
  Returns the insets.
  `int`
  `getLastDragLocation()`
  Returns the last drag location of the `JSplitPane`.
  `int`
  `getMaximumDividerLocation(JSplitPane jc)`
  Gets the maximum location of the divider.
  `Dimension`
  `getMaximumSize(JComponent jc)`
  Returns the maximum size for the passed in component, This is passed off to the current layout manager.
  `int`
  `getMinimumDividerLocation(JSplitPane jc)`
  Gets the minimum location of the divider.
  `Dimension`
  `getMinimumSize(JComponent jc)`
  Returns the minimum size for the passed in component, This is passed off to the current layout manager.
  `Component`
  `getNonContinuousLayoutDivider()`
  Returns the divider to use when the `JSplitPane` is configured to not continuously layout.
  `int`
  `getOrientation()`
  Returns the orientation for the `JSplitPane`.
  `Dimension`
  `getPreferredSize(JComponent jc)`
  Returns the preferred size for the passed in component, This is passed off to the current layout manager.
  `JSplitPane`
  `getSplitPane()`
  Returns the `JSplitPane` this instance is currently contained in.
  `protected void`
  `installDefaults()`
  Installs the UI defaults.
  `protected void`
  `installKeyboardActions()`
  Installs the keyboard actions for the UI.
  `protected void`
  `installListeners()`
  Installs the event listeners for the UI.
  `void`
  `installUI(JComponent c)`
  Installs the UI.
  `boolean`
  `isContinuousLayout()`
  Determines whether the `JSplitPane` is set to use a continuous layout.
  `protected void`
  `resetLayoutManager()`
  Resets the layout manager based on orientation and messages it with invalidateLayout to pull in appropriate Components.
  `void`
  `resetToPreferredSizes(JSplitPane jc)`
  Messaged to reset the preferred sizes.
  `void`
  `setContinuousLayout(boolean b)`
  Turn continuous layout on/off.
  `void`
  `setDividerLocation(JSplitPane jc, int location)`
  Sets the location of the divider to location.
  `void`
  `setLastDragLocation(int l)`
  Set the last drag location of the `JSplitPane`.
  `protected void`
  `setNonContinuousLayoutDivider(Component newDivider)`
  Sets the divider to use when the `JSplitPane` is configured to not continuously layout.
  `protected void`
  `setNonContinuousLayoutDivider(Component newDivider, boolean rememberSizes)`
  Sets the divider to use.
  `void`
  `setOrientation(int orientation)`
  Set the orientation for the `JSplitPane`.
  `protected void`
  `startDragging()`
  Should be messaged before the dragging session starts, resets lastDragLocation and dividerSize.
  `protected void`
  `uninstallDefaults()`
  Uninstalls the UI defaults.
  `protected void`
  `uninstallKeyboardActions()`
  Uninstalls the keyboard actions for the UI.
  `protected void`
  `uninstallListeners()`
  Uninstalls the event listeners for the UI.
  `void`
  `uninstallUI(JComponent c)`
  Uninstalls the UI.

  ### Methods declared in class ComponentUI

  `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, paint, update`
  Modifier and Type
  Method
  Description
  `boolean`
  `contains(JComponent c, int x, int y)`
  Returns `true` if the specified x,y location is contained within the look and feel's defined shape of the specified component.
  `Accessible`
  `getAccessibleChild(JComponent c, int i)`
  Returns the `i`th `Accessible` child of the object.
  `int`
  `getAccessibleChildrenCount(JComponent c)`
  Returns the number of accessible children in the object.
  `int`
  `getBaseline(JComponent c, int width, int height)`
  Returns the baseline.
  `Component.BaselineResizeBehavior`
  `getBaselineResizeBehavior(JComponent c)`
  Returns an enum indicating how the baseline of the component changes as the size changes.
  `void`
  `paint(Graphics g, JComponent c)`
  Paints the specified component appropriately for the look and feel.
  `void`
  `update(Graphics g, JComponent c)`
  Notifies this UI delegate that it is time to paint the specified component.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### MetalSplitPaneUI

    public MetalSplitPaneUI()
    Constructs a `MetalSplitPaneUI`.

- ## Method Details

  - ### createUI

    public static ComponentUI createUI(JComponent x)
    Creates a new `MetalSplitPaneUI` instance
    Parameters:
      `x` - a component
    Returns:
      a new `MetalSplitPaneUI` instance

  - ### createDefaultDivider

    public BasicSplitPaneDivider createDefaultDivider()
    Creates the default divider.
    Overrides:
      `createDefaultDivider` in class `BasicSplitPaneUI`
    Returns:
      the default divider