SynthSplitPaneUI (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.swing.plaf.synth, class: SynthSplitPaneUI
Keywords: javax.swing.plaf.synth.SynthSplitPaneUI class

# Class SynthSplitPaneUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.SplitPaneUI
javax.swing.plaf.basic.BasicSplitPaneUI
javax.swing.plaf.synth.SynthSplitPaneUI

All Implemented Interfaces:
  `PropertyChangeListener, EventListener, SynthConstants, SynthUI`

public class SynthSplitPaneUI extends BasicSplitPaneUI implements PropertyChangeListener, SynthUI
Provides the Synth L&F UI delegate for `JSplitPane`.

Since:
  1.7

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

  ### Fields declared in interface SynthConstants

  `DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED`
  Modifier and Type
  Field
  Description
  `static final int`
  `DEFAULT`
  Indicates the region is the default.
  `static final int`
  `DISABLED`
  Primary state indicating the region is not enabled.
  `static final int`
  `ENABLED`
  Primary state indicating the component is enabled.
  `static final int`
  `FOCUSED`
  Indicates the region has focus.
  `static final int`
  `MOUSE_OVER`
  Primary state indicating the mouse is over the region.
  `static final int`
  `PRESSED`
  Primary state indicating the region is in a pressed state.
  `static final int`
  `SELECTED`
  Indicates the region is selected.

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `BasicSplitPaneDivider`
  `createDefaultDivider()`
  Creates the default divider.
  `static ComponentUI`
  `createUI(JComponent x)`
  Creates a new SynthSplitPaneUI instance
  `SynthContext`
  `getContext(JComponent c)`
  Returns the Context for the specified component.
  `protected void`
  `installDefaults()`
  Installs the UI defaults.
  `protected void`
  `installListeners()`
  Installs the event listeners for the UI.
  `void`
  `paint(Graphics g, JComponent c)`
  Paints the specified component according to the Look and Feel.
  `protected void`
  `paint(SynthContext context, Graphics g)`
  Paints the specified component.
  `void`
  `paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)`
  Paints the border.
  `void`
  `propertyChange(PropertyChangeEvent e)`
  This method gets called when a bound property is changed.
  `protected void`
  `uninstallDefaults()`
  Uninstalls the UI defaults.
  `protected void`
  `uninstallListeners()`
  Uninstalls the event listeners from the UI.
  `void`
  `update(Graphics g, JComponent c)`
  Notifies this UI delegate to repaint the specified component.

  ### 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, installKeyboardActions, installUI, isContinuousLayout, resetLayoutManager, resetToPreferredSizes, setContinuousLayout, setDividerLocation, setLastDragLocation, setNonContinuousLayoutDivider, setNonContinuousLayoutDivider, setOrientation, startDragging, uninstallKeyboardActions, 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`
  `installKeyboardActions()`
  Installs the keyboard actions 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`
  `uninstallKeyboardActions()`
  Uninstalls the keyboard actions for the UI.
  `void`
  `uninstallUI(JComponent c)`
  Uninstalls the UI.

  ### Methods declared in class ComponentUI

  `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior`
  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.

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

  - ### SynthSplitPaneUI

    public SynthSplitPaneUI()
    Constructs a `SynthSplitPaneUI`.

- ## Method Details

  - ### createUI

    public static ComponentUI createUI(JComponent x)
    Creates a new SynthSplitPaneUI instance
    Parameters:
      `x` - component to create UI object for
    Returns:
      the UI object

  - ### installDefaults

    protected void installDefaults()
    Installs the UI defaults.
    Overrides:
      `installDefaults` in class `BasicSplitPaneUI`

  - ### installListeners

    protected void installListeners()
    Installs the event listeners for the UI.
    Overrides:
      `installListeners` in class `BasicSplitPaneUI`

  - ### uninstallDefaults

    protected void uninstallDefaults()
    Uninstalls the UI defaults.
    Overrides:
      `uninstallDefaults` in class `BasicSplitPaneUI`

  - ### uninstallListeners

    protected void uninstallListeners()
    Uninstalls the event listeners from the UI.
    Overrides:
      `uninstallListeners` in class `BasicSplitPaneUI`

  - ### getContext

    public SynthContext getContext(JComponent c)
    Returns the Context for the specified component.
    Specified by:
      `getContext` in interface `SynthUI`
    Parameters:
      `c` - Component requesting SynthContext.
    Returns:
      SynthContext describing component.

  - ### propertyChange

    public void propertyChange(PropertyChangeEvent e)
    This method gets called when a bound property is changed.
    Specified by:
      `propertyChange` in interface `PropertyChangeListener`
    Parameters:
      `e` - A PropertyChangeEvent object describing the event source and the property that has changed.

  - ### createDefaultDivider

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

  - ### update

    public void update(Graphics g, JComponent c)
    Notifies this UI delegate to repaint the specified component. This method paints the component background, then calls the `paint(SynthContext,Graphics)` method.

    In general, this method does not need to be overridden by subclasses. All Look and Feel rendering code should reside in the `paint` method.

    Overrides:
      `update` in class `ComponentUI`
    Parameters:
      `g` - the `Graphics` object used for painting
      `c` - the component being painted
    See Also:
      - `paint(SynthContext,Graphics)`

  - ### paint

    public void paint(Graphics g, JComponent c)
    Paints the specified component according to the Look and Feel.

    This method is not used by Synth Look and Feel. Painting is handled by the `paint(SynthContext,Graphics)` method.

    Overrides:
      `paint` in class `ComponentUI`
    Parameters:
      `g` - the `Graphics` object used for painting
      `c` - the component being painted
    See Also:
      - `paint(SynthContext,Graphics)`

  - ### paint

    protected void paint(SynthContext context, Graphics g)
    Paints the specified component. This implementation does nothing.
    Parameters:
      `context` - context for the component being painted
      `g` - the `Graphics` object used for painting
    See Also:
      - `update(Graphics,JComponent)`

  - ### paintBorder

    public void paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)
    Paints the border.
    Specified by:
      `paintBorder` in interface `SynthUI`
    Parameters:
      `context` - a component context
      `g` - `Graphics` to paint on
      `x` - the X coordinate
      `y` - the Y coordinate
      `w` - width of the border
      `h` - height of the border