ScrollBar (JavaFX 17)

Module javafx.controls
Package javafx.scene.control

## Class ScrollBar

- java.lang.Object
- - javafx.scene.Node
  - - javafx.scene.Parent
    - - javafx.scene.layout.Region
      - - javafx.scene.control.Control
        - - javafx.scene.control.ScrollBar

- All Implemented Interfaces:
    `Styleable`, `EventTarget`, `Skinnable`

      public class ScrollBar
      extends Control

  Either a horizontal or vertical bar with increment and decrement buttons and a "thumb" with which the user can interact. Typically not used alone but used for building up more complicated controls such as the ScrollPane and ListView.

  ScrollBar sets focusTraversable to false.

  This example creates a vertical ScrollBar:

       ScrollBar s1 = new ScrollBar();
       s1.setOrientation(Orientation.VERTICAL);

  Since:
    JavaFX 2.0

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `DoubleProperty` | `blockIncrement` | The amount by which to adjust the scrollbar if the track of the bar is clicked.
    `DoubleProperty` | `max` | The maximum value represented by this `ScrollBar`.
    `DoubleProperty` | `min` | The minimum value represented by this `ScrollBar`.
    `ObjectProperty<Orientation>` | `orientation` | The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.
    `DoubleProperty` | `unitIncrement` | The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.
    `DoubleProperty` | `value` | The current value represented by this `ScrollBar`.
    `DoubleProperty` | `visibleAmount` | Visible amount of the scrollbar's range, typically represented by the size of the scroll bar's thumb.

    - ### Properties declared in class javafx.scene.control.Control

      `contextMenu, skin, tooltip`

    - ### Properties declared in class javafx.scene.layout.Region

      `background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

    - ### Properties declared in class javafx.scene.Parent

      `needsLayout`

    - ### Properties declared in class javafx.scene.Node

      `accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible`

  - ### Field Summary

    - ### Fields declared in class javafx.scene.layout.Region

      `USE_COMPUTED_SIZE, USE_PREF_SIZE`

    - ### Fields declared in class javafx.scene.Node

      `BASELINE_OFFSET_SAME_AS_HEIGHT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ScrollBar()` | Creates a new horizontal ScrollBar (ie getOrientation() == Orientation.HORIZONTAL).

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `adjustValue​(double position)` | Adjusts the `value` property by `blockIncrement`.
    `DoubleProperty` | `blockIncrementProperty()` | The amount by which to adjust the scrollbar if the track of the bar is clicked.
    `void` | `decrement()` | Decrements the value of the `ScrollBar` by the `unitIncrement`
    `double` | `getBlockIncrement()` | Gets the value of the property blockIncrement.
    `static List<CssMetaData<? extends Styleable,​?>>` | `getClassCssMetaData()` |
    `List<CssMetaData<? extends Styleable,​?>>` | `getControlCssMetaData()`
    `protected Boolean` | `getInitialFocusTraversable()` | Returns the initial focus traversable state of this control, for use by the JavaFX CSS engine to correctly set its initial value.
    `double` | `getMax()` | Gets the value of the property max.
    `double` | `getMin()` | Gets the value of the property min.
    `Orientation` | `getOrientation()` | Gets the value of the property orientation.
    `double` | `getUnitIncrement()` | Gets the value of the property unitIncrement.
    `double` | `getValue()` | Gets the value of the property value.
    `double` | `getVisibleAmount()` | Gets the value of the property visibleAmount.
    `void` | `increment()` | Increments the value of the `ScrollBar` by the `unitIncrement`
    `DoubleProperty` | `maxProperty()` | The maximum value represented by this `ScrollBar`.
    `DoubleProperty` | `minProperty()` | The minimum value represented by this `ScrollBar`.
    `ObjectProperty<Orientation>` | `orientationProperty()` | The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.
    `void` | `setBlockIncrement​(double value)` | Sets the value of the property blockIncrement.
    `void` | `setMax​(double value)` | Sets the value of the property max.
    `void` | `setMin​(double value)` | Sets the value of the property min.
    `void` | `setOrientation​(Orientation value)` | Sets the value of the property orientation.
    `void` | `setUnitIncrement​(double value)` | Sets the value of the property unitIncrement.
    `void` | `setValue​(double value)` | Sets the value of the property value.
    `void` | `setVisibleAmount​(double value)` | Sets the value of the property visibleAmount.
    `DoubleProperty` | `unitIncrementProperty()` | The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.
    `DoubleProperty` | `valueProperty()` | The current value represented by this `ScrollBar`.
    `DoubleProperty` | `visibleAmountProperty()` | Visible amount of the scrollbar's range, typically represented by the size of the scroll bar's thumb.

    - ### Methods declared in class javafx.scene.control.Control

      `computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, getTooltip, isResizable, setContextMenu, setTooltip, skinProperty, tooltipProperty`

    - ### Methods declared in class javafx.scene.layout.Region

      `backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computePrefHeight, computePrefWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty`

    - ### Methods declared in class javafx.scene.Parent

      `getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds`

    - ### Methods declared in class javafx.scene.Node

      `accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty`

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

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

    - ### Methods declared in interface javafx.scene.control.Skinnable

      `getSkin, setSkin`

    - ### Methods declared in interface javafx.css.Styleable

      `getStyleableNode, getStyleClass`

- - ### Property Detail

    - #### min

          public final DoubleProperty minProperty

      The minimum value represented by this `ScrollBar`. This should be a value less than or equal to `max`. Default value is 0.
      See Also:
        `getMin()`, `setMin(double)`

    - #### max

          public final DoubleProperty maxProperty

      The maximum value represented by this `ScrollBar`. This should be a value greater than or equal to `min`. Default value is 100.
      See Also:
        `getMax()`, `setMax(double)`

    - #### value

          public final DoubleProperty valueProperty

      The current value represented by this `ScrollBar`. This value should be between `min` and `max`, inclusive.
      See Also:
        `getValue()`, `setValue(double)`

    - #### orientation

          public final ObjectProperty<Orientation> orientationProperty

      The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.
      See Also:
        `getOrientation()`, `setOrientation(Orientation)`

    - #### unitIncrement

          public final DoubleProperty unitIncrementProperty

      The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.
      See Also:
        `getUnitIncrement()`, `setUnitIncrement(double)`

    - #### blockIncrement

          public final DoubleProperty blockIncrementProperty

      The amount by which to adjust the scrollbar if the track of the bar is clicked.
      See Also:
        `getBlockIncrement()`, `setBlockIncrement(double)`

    - #### visibleAmount

          public final DoubleProperty visibleAmountProperty

      Visible amount of the scrollbar's range, typically represented by the size of the scroll bar's thumb.
      See Also:
        `getVisibleAmount()`, `setVisibleAmount(double)`

  - ### Constructor Detail

    - #### ScrollBar

          public ScrollBar()

      Creates a new horizontal ScrollBar (ie getOrientation() == Orientation.HORIZONTAL).

  - ### Method Detail

    - #### setMin

          public final void setMin​(double value)

      Sets the value of the property min.
      Property description:
        The minimum value represented by this `ScrollBar`. This should be a value less than or equal to `max`. Default value is 0.

    - #### getMin

          public final double getMin()

      Gets the value of the property min.
      Property description:
        The minimum value represented by this `ScrollBar`. This should be a value less than or equal to `max`. Default value is 0.

    - #### minProperty

          public final DoubleProperty minProperty()

      The minimum value represented by this `ScrollBar`. This should be a value less than or equal to `max`. Default value is 0.
      See Also:
        `getMin()`, `setMin(double)`

    - #### setMax

          public final void setMax​(double value)

      Sets the value of the property max.
      Property description:
        The maximum value represented by this `ScrollBar`. This should be a value greater than or equal to `min`. Default value is 100.

    - #### getMax

          public final double getMax()

      Gets the value of the property max.
      Property description:
        The maximum value represented by this `ScrollBar`. This should be a value greater than or equal to `min`. Default value is 100.

    - #### maxProperty

          public final DoubleProperty maxProperty()

      The maximum value represented by this `ScrollBar`. This should be a value greater than or equal to `min`. Default value is 100.
      See Also:
        `getMax()`, `setMax(double)`

    - #### setValue

          public final void setValue​(double value)

      Sets the value of the property value.
      Property description:
        The current value represented by this `ScrollBar`. This value should be between `min` and `max`, inclusive.

    - #### getValue

          public final double getValue()

      Gets the value of the property value.
      Property description:
        The current value represented by this `ScrollBar`. This value should be between `min` and `max`, inclusive.

    - #### valueProperty

          public final DoubleProperty valueProperty()

      The current value represented by this `ScrollBar`. This value should be between `min` and `max`, inclusive.
      See Also:
        `getValue()`, `setValue(double)`

    - #### setOrientation

          public final void setOrientation​(Orientation value)

      Sets the value of the property orientation.
      Property description:
        The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.

    - #### getOrientation

          public final Orientation getOrientation()

      Gets the value of the property orientation.
      Property description:
        The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.

    - #### orientationProperty

          public final ObjectProperty<Orientation> orientationProperty()

      The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.
      See Also:
        `getOrientation()`, `setOrientation(Orientation)`

    - #### setUnitIncrement

          public final void setUnitIncrement​(double value)

      Sets the value of the property unitIncrement.
      Property description:
        The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.

    - #### getUnitIncrement

          public final double getUnitIncrement()

      Gets the value of the property unitIncrement.
      Property description:
        The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.

    - #### unitIncrementProperty

          public final DoubleProperty unitIncrementProperty()

      The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.
      See Also:
        `getUnitIncrement()`, `setUnitIncrement(double)`

    - #### setBlockIncrement

          public final void setBlockIncrement​(double value)

      Sets the value of the property blockIncrement.
      Property description:
        The amount by which to adjust the scrollbar if the track of the bar is clicked.

    - #### getBlockIncrement

          public final double getBlockIncrement()

      Gets the value of the property blockIncrement.
      Property description:
        The amount by which to adjust the scrollbar if the track of the bar is clicked.

    - #### blockIncrementProperty

          public final DoubleProperty blockIncrementProperty()

      The amount by which to adjust the scrollbar if the track of the bar is clicked.
      See Also:
        `getBlockIncrement()`, `setBlockIncrement(double)`

    - #### setVisibleAmount

          public final void setVisibleAmount​(double value)

      Sets the value of the property visibleAmount.
      Property description:
        Visible amount of the scrollbar's range, typically represented by the size of the scroll bar's thumb.

    - #### getVisibleAmount

          public final double getVisibleAmount()

      Gets the value of the property visibleAmount.
      Property description:
        Visible amount of the scrollbar's range, typically represented by the size of the scroll bar's thumb.

    - #### visibleAmountProperty

          public final DoubleProperty visibleAmountProperty()

      Visible amount of the scrollbar's range, typically represented by the size of the scroll bar's thumb.
      See Also:
        `getVisibleAmount()`, `setVisibleAmount(double)`

    - #### adjustValue

          public void adjustValue​(double position)

      Adjusts the `value` property by `blockIncrement`. The `position` is the fractional amount between the `min` and `max`. For example, it might be 50%. If `#minProperty min` were 0 and `#maxProperty max` were 100 and `value` were 25, then a position of .5 would indicate that we should increment `value` by `blockIncrement`. If `value` were 75, then a position of .5 would indicate that we should decrement `value` by `blockIncrement`. Note: This function is intended to be used by experts, primarily by those implementing new Skins or Behaviors. It is not common for developers or designers to access this function directly.
      Parameters:
        `position` - the position

    - #### increment

          public void increment()

      Increments the value of the `ScrollBar` by the `unitIncrement`

    - #### decrement

          public void decrement()

      Decrements the value of the `ScrollBar` by the `unitIncrement`

    - #### getClassCssMetaData

          public static List<CssMetaData<? extends Styleable,​?>> getClassCssMetaData()

      Returns:
        The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
      Since:
        JavaFX 8.0

    - #### getControlCssMetaData

          public List<CssMetaData<? extends Styleable,​?>> getControlCssMetaData()

      Overrides:
        `getControlCssMetaData` in class `Control`
      Returns:
        unmodifiable list of the controls css styleable properties
      Since:
        JavaFX 8.0

    - #### getInitialFocusTraversable

          protected Boolean getInitialFocusTraversable()

      Returns the initial focus traversable state of this control, for use by the JavaFX CSS engine to correctly set its initial value. This method is overridden as by default UI controls have focus traversable set to true, but that is not appropriate for this control.
      Overrides:
        `getInitialFocusTraversable` in class `Control`
      Returns:
        the initial focus traversable state of this control
      Since:
        9