javax.swing

## Class JScrollPane.ScrollBar

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JScrollBar
        - - javax.swing.JScrollPane.ScrollBar

- All Implemented Interfaces:
    Adjustable, ImageObserver, MenuContainer, Serializable, Accessible, UIResource
  Enclosing class:
    JScrollPane

      protected class JScrollPane.ScrollBar
      extends JScrollBar
      implements UIResource

  By default `JScrollPane` creates scrollbars that are instances of this class. `Scrollbar` overrides the `getUnitIncrement` and `getBlockIncrement` methods so that, if the viewport's view is a `Scrollable`, the view is asked to compute these values. Unless the unit/block increment have been explicitly set.

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

  See Also:
    `Scrollable`, `JScrollPane.createVerticalScrollBar()`, `JScrollPane.createHorizontalScrollBar()`

- - ### Nested Class Summary

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

      `JScrollBar.AccessibleJScrollBar`

    - ### 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 inherited from class javax.swing.JScrollBar

      `blockIncrement, model, orientation, unitIncrement`

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

      `HORIZONTAL, NO_ORIENTATION, VERTICAL`

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

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

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ScrollBar(int orientation)` | Creates a scrollbar with the specified orientation.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getBlockIncrement(int direction)` | Computes the block increment for scrolling if the viewport's view is a `Scrollable` object.
    `int` | `getUnitIncrement(int direction)` | Computes the unit increment for scrolling if the viewport's view is a `Scrollable` object.
    `void` | `setBlockIncrement(int blockIncrement)` | Messages super to set the value, and resets the `blockIncrementSet` instance variable to true.
    `void` | `setUnitIncrement(int unitIncrement)` | Messages super to set the value, and resets the `unitIncrementSet` instance variable to true.

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

      `addAdjustmentListener, fireAdjustmentValueChanged, getAccessibleContext, getAdjustmentListeners, getBlockIncrement, getMaximum, getMaximumSize, getMinimum, getMinimumSize, getModel, getOrientation, getUI, getUIClassID, getUnitIncrement, getValue, getValueIsAdjusting, getVisibleAmount, paramString, removeAdjustmentListener, setEnabled, setMaximum, setMinimum, setModel, setOrientation, setUI, setValue, setValueIsAdjusting, setValues, setVisibleAmount, updateUI`

    - ### 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, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from 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 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`

- - ### Constructor Detail

    - #### ScrollBar

          public ScrollBar(int orientation)

      Creates a scrollbar with the specified orientation. The options are:
      - `ScrollPaneConstants.VERTICAL`
      - `ScrollPaneConstants.HORIZONTAL`
      Parameters:
        `orientation` - an integer specifying one of the legal orientation values shown above
      Since:
        1.4

  - ### Method Detail

    - #### setUnitIncrement

          public void setUnitIncrement(int unitIncrement)

      Messages super to set the value, and resets the `unitIncrementSet` instance variable to true.
      Specified by:
        `setUnitIncrement` in interface `Adjustable`
      Overrides:
        `setUnitIncrement` in class `JScrollBar`
      Parameters:
        `unitIncrement` - the new unit increment value, in pixels
      See Also:
        `JScrollBar.getUnitIncrement(int)`

    - #### getUnitIncrement

          public int getUnitIncrement(int direction)

      Computes the unit increment for scrolling if the viewport's view is a `Scrollable` object. Otherwise return `super.getUnitIncrement`.
      Overrides:
        `getUnitIncrement` in class `JScrollBar`
      Parameters:
        `direction` - less than zero to scroll up/left, greater than zero for down/right
      Returns:
        an integer, in pixels, containing the unit increment
      See Also:
        `Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)`

    - #### setBlockIncrement

          public void setBlockIncrement(int blockIncrement)

      Messages super to set the value, and resets the `blockIncrementSet` instance variable to true.
      Specified by:
        `setBlockIncrement` in interface `Adjustable`
      Overrides:
        `setBlockIncrement` in class `JScrollBar`
      Parameters:
        `blockIncrement` - the new block increment value, in pixels
      See Also:
        `JScrollBar.getBlockIncrement()`

    - #### getBlockIncrement

          public int getBlockIncrement(int direction)

      Computes the block increment for scrolling if the viewport's view is a `Scrollable` object. Otherwise the `blockIncrement` equals the viewport's width or height. If there's no viewport return `super.getBlockIncrement`.
      Overrides:
        `getBlockIncrement` in class `JScrollBar`
      Parameters:
        `direction` - less than zero to scroll up/left, greater than zero for down/right
      Returns:
        an integer, in pixels, containing the block increment
      See Also:
        `Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)`

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.