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
  `final DoubleProperty`
  `blockIncrement`
  The amount by which to adjust the scrollbar if the track of the bar is clicked.
  `final DoubleProperty`
  `max`
  The maximum value represented by this `ScrollBar`.
  `final DoubleProperty`
  `min`
  The minimum value represented by this `ScrollBar`.
  `final ObjectProperty<Orientation>`
  `orientation`
  The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.
  `final DoubleProperty`
  `unitIncrement`
  The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.
  `final DoubleProperty`
  `value`
  The current value represented by this `ScrollBar`.
  `final 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

  Modifier and Type
  Method
  Description
  `void`
  `adjustValue(double position)`
  Adjusts the `value` property by `blockIncrement`.
  `final 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`
  `final 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.
  `final double`
  `getMax()`
  Gets the value of the property max.
  `final double`
  `getMin()`
  Gets the value of the property min.
  `final Orientation`
  `getOrientation()`
  Gets the value of the property orientation.
  `final double`
  `getUnitIncrement()`
  Gets the value of the property unitIncrement.
  `final double`
  `getValue()`
  Gets the value of the property value.
  `final double`
  `getVisibleAmount()`
  Gets the value of the property visibleAmount.
  `void`
  `increment()`
  Increments the value of the `ScrollBar` by the `unitIncrement`
  `final DoubleProperty`
  `maxProperty()`
  The maximum value represented by this `ScrollBar`.
  `final DoubleProperty`
  `minProperty()`
  The minimum value represented by this `ScrollBar`.
  `final ObjectProperty<Orientation>`
  `orientationProperty()`
  The orientation of the `ScrollBar` can either be `HORIZONTAL` or `VERTICAL`.
  `final void`
  `setBlockIncrement(double value)`
  Sets the value of the property blockIncrement.
  `final void`
  `setMax(double value)`
  Sets the value of the property max.
  `final void`
  `setMin(double value)`
  Sets the value of the property min.
  `final void`
  `setOrientation(Orientation value)`
  Sets the value of the property orientation.
  `final void`
  `setUnitIncrement(double value)`
  Sets the value of the property unitIncrement.
  `final void`
  `setValue(double value)`
  Sets the value of the property value.
  `final void`
  `setVisibleAmount(double value)`
  Sets the value of the property visibleAmount.
  `final DoubleProperty`
  `unitIncrementProperty()`
  The amount by which to adjust the ScrollBar when the `increment` or `decrement` methods are called.
  `final DoubleProperty`
  `valueProperty()`
  The current value represented by this `ScrollBar`.
  `final 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, getSkin, getTooltip, isResizable, setContextMenu, setSkin, 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, getStyleClass, 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.css.Styleable

  `getStyleableNode`

- ## Property Details

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

  - ### ScrollBar

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

- ## Method Details

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