Module javafx.controls
Package javafx.scene.control

# Class ScrollPane

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

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

@DefaultProperty("content") public class ScrollPane extends Control
A Control that provides a scrolled, clipped viewport of its contents. It allows the user to scroll the content around either directly (panning) or by using scroll bars. The ScrollPane allows specification of the scroll bar policy, which determines when scroll bars are displayed: always, never, or only when they are needed. The scroll bar policy can be specified independently for the horizontal and vertical scroll bars.

The ScrollPane allows the application to set the current, minimum, and maximum values for positioning the contents in the horizontal and vertical directions. These values are mapped proportionally onto the `layoutBounds` of the contained node.

ScrollPane layout calculations are based on the layoutBounds rather than the boundsInParent (visual bounds) of the scroll node. If an application wants the scrolling to be based on the visual bounds of the node (for scaled content etc.), it needs to wrap the scroll node in a Group.

ScrollPane sets focusTraversable to false.

This example creates a ScrollPane, which contains a Rectangle:

     Rectangle rect = new Rectangle(200, 200, Color.RED);
     ScrollPane s1 = new ScrollPane();
     s1.setPrefSize(120, 120);
     s1.setContent(rect);

Since:
  JavaFX 2.0

- ## Property Summary

  Properties
  Type
  Property
  Description
  `final ObjectProperty<Node>`
  `content`
  The node used as the content of this ScrollPane.
  `final BooleanProperty`
  `fitToHeight`
  If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport.
  `final BooleanProperty`
  `fitToWidth`
  If true and if the contained node is a Resizable, then the node will be kept resized to match the width of the ScrollPane's viewport.
  `final ObjectProperty<ScrollPane.ScrollBarPolicy>`
  `hbarPolicy`
  Specifies the policy for showing the horizontal scroll bar.
  `final DoubleProperty`
  `hmax`
  The maximum allowable `hvalue` for this ScrollPane.
  `final DoubleProperty`
  `hmin`
  The minimum allowable `hvalue` for this ScrollPane.
  `final DoubleProperty`
  `hvalue`
  The current horizontal scroll position of the ScrollPane.
  `final DoubleProperty`
  `minViewportHeight`
  Specify the minimum height of the ScrollPane Viewport.
  `final DoubleProperty`
  `minViewportWidth`
  Specify the minimum width of the ScrollPane Viewport.
  `final BooleanProperty`
  `pannable`
  Specifies whether the user should be able to pan the viewport by using the mouse.
  `final DoubleProperty`
  `prefViewportHeight`
  Specify the preferred height of the ScrollPane Viewport.
  `final DoubleProperty`
  `prefViewportWidth`
  Specify the preferred width of the ScrollPane Viewport.
  `final ObjectProperty<ScrollPane.ScrollBarPolicy>`
  `vbarPolicy`
  Specifies the policy for showing the vertical scroll bar.
  `final ObjectProperty<Bounds>`
  `viewportBounds`
  The actual Bounds of the ScrollPane Viewport.
  `final DoubleProperty`
  `vmax`
  The maximum allowable `vvalue` for this ScrollPane.
  `final DoubleProperty`
  `vmin`
  The minimum allowable `vvalue` for this ScrollPane.
  `final DoubleProperty`
  `vvalue`
  The current vertical scroll position of the ScrollPane.

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

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `ScrollPane.ScrollBarPolicy`
  An enumeration denoting the policy to be used by a scrollable Control in deciding whether to show a scroll bar.

- ## 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
  `ScrollPane()`
  Creates a new ScrollPane.
  `ScrollPane(Node content)`
  Creates a new ScrollPane.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final ObjectProperty<Node>`
  `contentProperty()`
  The node used as the content of this ScrollPane.
  `final BooleanProperty`
  `fitToHeightProperty()`
  If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport.
  `final BooleanProperty`
  `fitToWidthProperty()`
  If true and if the contained node is a Resizable, then the node will be kept resized to match the width of the ScrollPane's viewport.
  `static List<CssMetaData<? extends Styleable,?>>`
  `getClassCssMetaData()`
  `final Node`
  `getContent()`
  Gets the value of the property content.
  `List<CssMetaData<? extends Styleable,?>>`
  `getControlCssMetaData()`
  `final ScrollPane.ScrollBarPolicy`
  `getHbarPolicy()`
  Gets the value of the property hbarPolicy.
  `final double`
  `getHmax()`
  Gets the value of the property hmax.
  `final double`
  `getHmin()`
  Gets the value of the property hmin.
  `final double`
  `getHvalue()`
  Gets the value of the property hvalue.
  `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`
  `getMinViewportHeight()`
  Gets the value of the property minViewportHeight.
  `final double`
  `getMinViewportWidth()`
  Gets the value of the property minViewportWidth.
  `final double`
  `getPrefViewportHeight()`
  Gets the value of the property prefViewportHeight.
  `final double`
  `getPrefViewportWidth()`
  Gets the value of the property prefViewportWidth.
  `final ScrollPane.ScrollBarPolicy`
  `getVbarPolicy()`
  Gets the value of the property vbarPolicy.
  `final Bounds`
  `getViewportBounds()`
  Gets the value of the property viewportBounds.
  `final double`
  `getVmax()`
  Gets the value of the property vmax.
  `final double`
  `getVmin()`
  Gets the value of the property vmin.
  `final double`
  `getVvalue()`
  Gets the value of the property vvalue.
  `final ObjectProperty<ScrollPane.ScrollBarPolicy>`
  `hbarPolicyProperty()`
  Specifies the policy for showing the horizontal scroll bar.
  `final DoubleProperty`
  `hmaxProperty()`
  The maximum allowable `hvalue` for this ScrollPane.
  `final DoubleProperty`
  `hminProperty()`
  The minimum allowable `hvalue` for this ScrollPane.
  `final DoubleProperty`
  `hvalueProperty()`
  The current horizontal scroll position of the ScrollPane.
  `final boolean`
  `isFitToHeight()`
  Gets the value of the property fitToHeight.
  `final boolean`
  `isFitToWidth()`
  Gets the value of the property fitToWidth.
  `final boolean`
  `isPannable()`
  Gets the value of the property pannable.
  `final DoubleProperty`
  `minViewportHeightProperty()`
  Specify the minimum height of the ScrollPane Viewport.
  `final DoubleProperty`
  `minViewportWidthProperty()`
  Specify the minimum width of the ScrollPane Viewport.
  `final BooleanProperty`
  `pannableProperty()`
  Specifies whether the user should be able to pan the viewport by using the mouse.
  `final DoubleProperty`
  `prefViewportHeightProperty()`
  Specify the preferred height of the ScrollPane Viewport.
  `final DoubleProperty`
  `prefViewportWidthProperty()`
  Specify the preferred width of the ScrollPane Viewport.
  `final void`
  `setContent(Node value)`
  Sets the value of the property content.
  `final void`
  `setFitToHeight(boolean value)`
  Sets the value of the property fitToHeight.
  `final void`
  `setFitToWidth(boolean value)`
  Sets the value of the property fitToWidth.
  `final void`
  `setHbarPolicy(ScrollPane.ScrollBarPolicy value)`
  Sets the value of the property hbarPolicy.
  `final void`
  `setHmax(double value)`
  Sets the value of the property hmax.
  `final void`
  `setHmin(double value)`
  Sets the value of the property hmin.
  `final void`
  `setHvalue(double value)`
  Sets the value of the property hvalue.
  `final void`
  `setMinViewportHeight(double value)`
  Sets the value of the property minViewportHeight.
  `final void`
  `setMinViewportWidth(double value)`
  Sets the value of the property minViewportWidth.
  `final void`
  `setPannable(boolean value)`
  Sets the value of the property pannable.
  `final void`
  `setPrefViewportHeight(double value)`
  Sets the value of the property prefViewportHeight.
  `final void`
  `setPrefViewportWidth(double value)`
  Sets the value of the property prefViewportWidth.
  `final void`
  `setVbarPolicy(ScrollPane.ScrollBarPolicy value)`
  Sets the value of the property vbarPolicy.
  `final void`
  `setViewportBounds(Bounds value)`
  Sets the value of the property viewportBounds.
  `final void`
  `setVmax(double value)`
  Sets the value of the property vmax.
  `final void`
  `setVmin(double value)`
  Sets the value of the property vmin.
  `final void`
  `setVvalue(double value)`
  Sets the value of the property vvalue.
  `final ObjectProperty<ScrollPane.ScrollBarPolicy>`
  `vbarPolicyProperty()`
  Specifies the policy for showing the vertical scroll bar.
  `final ObjectProperty<Bounds>`
  `viewportBoundsProperty()`
  The actual Bounds of the ScrollPane Viewport.
  `final DoubleProperty`
  `vmaxProperty()`
  The maximum allowable `vvalue` for this ScrollPane.
  `final DoubleProperty`
  `vminProperty()`
  The minimum allowable `vvalue` for this ScrollPane.
  `final DoubleProperty`
  `vvalueProperty()`
  The current vertical scroll position of the ScrollPane.

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

  - ### hbarPolicy

    public final ObjectProperty<ScrollPane.ScrollBarPolicy> hbarPolicyProperty
    Specifies the policy for showing the horizontal scroll bar.
    See Also:
      - `getHbarPolicy()`
      - `setHbarPolicy(ScrollPane.ScrollBarPolicy)`

  - ### vbarPolicy

    public final ObjectProperty<ScrollPane.ScrollBarPolicy> vbarPolicyProperty
    Specifies the policy for showing the vertical scroll bar.
    See Also:
      - `getVbarPolicy()`
      - `setVbarPolicy(ScrollPane.ScrollBarPolicy)`

  - ### content

    public final ObjectProperty<Node> contentProperty
    The node used as the content of this ScrollPane.
    See Also:
      - `getContent()`
      - `setContent(Node)`

  - ### hvalue

    public final DoubleProperty hvalueProperty
    The current horizontal scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `hmin` to `hmax`. When `hvalue` equals `hmin`, the contained node is positioned so that its layoutBounds `minX` is visible. When `hvalue` equals `hmax`, the contained node is positioned so that its layoutBounds `maxX` is visible. When `hvalue` is between `hmin` and `hmax`, the contained node is positioned proportionally between layoutBounds `minX` and layoutBounds `maxX`.
    See Also:
      - `getHvalue()`
      - `setHvalue(double)`

  - ### vvalue

    public final DoubleProperty vvalueProperty
    The current vertical scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `vmin` to `vmax`. When `vvalue` equals `vmin`, the contained node is positioned so that its layoutBounds `minY` is visible. When `vvalue` equals `vmax`, the contained node is positioned so that its layoutBounds `maxY` is visible. When `vvalue` is between `vmin` and `vmax`, the contained node is positioned proportionally between layoutBounds `minY` and layoutBounds `maxY`.
    See Also:
      - `getVvalue()`
      - `setVvalue(double)`

  - ### hmin

    public final DoubleProperty hminProperty
    The minimum allowable `hvalue` for this ScrollPane. Default value is 0.
    See Also:
      - `getHmin()`
      - `setHmin(double)`

  - ### vmin

    public final DoubleProperty vminProperty
    The minimum allowable `vvalue` for this ScrollPane. Default value is 0.
    See Also:
      - `getVmin()`
      - `setVmin(double)`

  - ### hmax

    public final DoubleProperty hmaxProperty
    The maximum allowable `hvalue` for this ScrollPane. Default value is 1.
    See Also:
      - `getHmax()`
      - `setHmax(double)`

  - ### vmax

    public final DoubleProperty vmaxProperty
    The maximum allowable `vvalue` for this ScrollPane. Default value is 1.
    See Also:
      - `getVmax()`
      - `setVmax(double)`

  - ### fitToWidth

    public final BooleanProperty fitToWidthProperty
    If true and if the contained node is a Resizable, then the node will be kept resized to match the width of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.
    See Also:
      - `isFitToWidth()`
      - `setFitToWidth(boolean)`

  - ### fitToHeight

    public final BooleanProperty fitToHeightProperty
    If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.
    See Also:
      - `isFitToHeight()`
      - `setFitToHeight(boolean)`

  - ### pannable

    public final BooleanProperty pannableProperty
    Specifies whether the user should be able to pan the viewport by using the mouse. If mouse events reach the ScrollPane (that is, if mouse events are not blocked by the contained node or one of its children) then `pannable` is consulted to determine if the events should be used for panning.
    See Also:
      - `isPannable()`
      - `setPannable(boolean)`

  - ### prefViewportWidth

    public final DoubleProperty prefViewportWidthProperty
    Specify the preferred width of the ScrollPane Viewport. This is the width that will be available to the content node. The overall width of the ScrollPane is the ViewportWidth + padding
    See Also:
      - `getPrefViewportWidth()`
      - `setPrefViewportWidth(double)`

  - ### prefViewportHeight

    public final DoubleProperty prefViewportHeightProperty
    Specify the preferred height of the ScrollPane Viewport. This is the height that will be available to the content node. The overall height of the ScrollPane is the ViewportHeight + padding
    See Also:
      - `getPrefViewportHeight()`
      - `setPrefViewportHeight(double)`

  - ### minViewportWidth

    public final DoubleProperty minViewportWidthProperty
    Specify the minimum width of the ScrollPane Viewport. This is the width that will be available to the content node.
    Since:
      JavaFX 8u40
    See Also:
      - `getMinViewportWidth()`
      - `setMinViewportWidth(double)`

  - ### minViewportHeight

    public final DoubleProperty minViewportHeightProperty
    Specify the minimum height of the ScrollPane Viewport. This is the height that will be available to the content node.
    Since:
      JavaFX 8u40
    See Also:
      - `getMinViewportHeight()`
      - `setMinViewportHeight(double)`

  - ### viewportBounds

    public final ObjectProperty<Bounds> viewportBoundsProperty
    The actual Bounds of the ScrollPane Viewport. This is the Bounds of the content node.
    See Also:
      - `getViewportBounds()`
      - `setViewportBounds(Bounds)`

- ## Constructor Details

  - ### ScrollPane

    public ScrollPane()
    Creates a new ScrollPane.

  - ### ScrollPane

    public ScrollPane(Node content)
    Creates a new ScrollPane.
    Parameters:
      `content` - the initial content for the ScrollPane
    Since:
      JavaFX 8.0

- ## Method Details

  - ### setHbarPolicy

    public final void setHbarPolicy(ScrollPane.ScrollBarPolicy value)
    Sets the value of the property hbarPolicy.
    Property description:
      Specifies the policy for showing the horizontal scroll bar.

  - ### getHbarPolicy

    public final ScrollPane.ScrollBarPolicy getHbarPolicy()
    Gets the value of the property hbarPolicy.
    Property description:
      Specifies the policy for showing the horizontal scroll bar.

  - ### hbarPolicyProperty

    public final ObjectProperty<ScrollPane.ScrollBarPolicy> hbarPolicyProperty()
    Specifies the policy for showing the horizontal scroll bar.
    See Also:
      - `getHbarPolicy()`
      - `setHbarPolicy(ScrollPane.ScrollBarPolicy)`

  - ### setVbarPolicy

    public final void setVbarPolicy(ScrollPane.ScrollBarPolicy value)
    Sets the value of the property vbarPolicy.
    Property description:
      Specifies the policy for showing the vertical scroll bar.

  - ### getVbarPolicy

    public final ScrollPane.ScrollBarPolicy getVbarPolicy()
    Gets the value of the property vbarPolicy.
    Property description:
      Specifies the policy for showing the vertical scroll bar.

  - ### vbarPolicyProperty

    public final ObjectProperty<ScrollPane.ScrollBarPolicy> vbarPolicyProperty()
    Specifies the policy for showing the vertical scroll bar.
    See Also:
      - `getVbarPolicy()`
      - `setVbarPolicy(ScrollPane.ScrollBarPolicy)`

  - ### setContent

    public final void setContent(Node value)
    Sets the value of the property content.
    Property description:
      The node used as the content of this ScrollPane.

  - ### getContent

    public final Node getContent()
    Gets the value of the property content.
    Property description:
      The node used as the content of this ScrollPane.

  - ### contentProperty

    public final ObjectProperty<Node> contentProperty()
    The node used as the content of this ScrollPane.
    See Also:
      - `getContent()`
      - `setContent(Node)`

  - ### setHvalue

    public final void setHvalue(double value)
    Sets the value of the property hvalue.
    Property description:
      The current horizontal scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `hmin` to `hmax`. When `hvalue` equals `hmin`, the contained node is positioned so that its layoutBounds `minX` is visible. When `hvalue` equals `hmax`, the contained node is positioned so that its layoutBounds `maxX` is visible. When `hvalue` is between `hmin` and `hmax`, the contained node is positioned proportionally between layoutBounds `minX` and layoutBounds `maxX`.

  - ### getHvalue

    public final double getHvalue()
    Gets the value of the property hvalue.
    Property description:
      The current horizontal scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `hmin` to `hmax`. When `hvalue` equals `hmin`, the contained node is positioned so that its layoutBounds `minX` is visible. When `hvalue` equals `hmax`, the contained node is positioned so that its layoutBounds `maxX` is visible. When `hvalue` is between `hmin` and `hmax`, the contained node is positioned proportionally between layoutBounds `minX` and layoutBounds `maxX`.

  - ### hvalueProperty

    public final DoubleProperty hvalueProperty()
    The current horizontal scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `hmin` to `hmax`. When `hvalue` equals `hmin`, the contained node is positioned so that its layoutBounds `minX` is visible. When `hvalue` equals `hmax`, the contained node is positioned so that its layoutBounds `maxX` is visible. When `hvalue` is between `hmin` and `hmax`, the contained node is positioned proportionally between layoutBounds `minX` and layoutBounds `maxX`.
    See Also:
      - `getHvalue()`
      - `setHvalue(double)`

  - ### setVvalue

    public final void setVvalue(double value)
    Sets the value of the property vvalue.
    Property description:
      The current vertical scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `vmin` to `vmax`. When `vvalue` equals `vmin`, the contained node is positioned so that its layoutBounds `minY` is visible. When `vvalue` equals `vmax`, the contained node is positioned so that its layoutBounds `maxY` is visible. When `vvalue` is between `vmin` and `vmax`, the contained node is positioned proportionally between layoutBounds `minY` and layoutBounds `maxY`.

  - ### getVvalue

    public final double getVvalue()
    Gets the value of the property vvalue.
    Property description:
      The current vertical scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `vmin` to `vmax`. When `vvalue` equals `vmin`, the contained node is positioned so that its layoutBounds `minY` is visible. When `vvalue` equals `vmax`, the contained node is positioned so that its layoutBounds `maxY` is visible. When `vvalue` is between `vmin` and `vmax`, the contained node is positioned proportionally between layoutBounds `minY` and layoutBounds `maxY`.

  - ### vvalueProperty

    public final DoubleProperty vvalueProperty()
    The current vertical scroll position of the ScrollPane. This value may be set by the application to scroll the view programatically. The ScrollPane will update this value whenever the viewport is scrolled or panned by the user. This value must always be within the range of `vmin` to `vmax`. When `vvalue` equals `vmin`, the contained node is positioned so that its layoutBounds `minY` is visible. When `vvalue` equals `vmax`, the contained node is positioned so that its layoutBounds `maxY` is visible. When `vvalue` is between `vmin` and `vmax`, the contained node is positioned proportionally between layoutBounds `minY` and layoutBounds `maxY`.
    See Also:
      - `getVvalue()`
      - `setVvalue(double)`

  - ### setHmin

    public final void setHmin(double value)
    Sets the value of the property hmin.
    Property description:
      The minimum allowable `hvalue` for this ScrollPane. Default value is 0.

  - ### getHmin

    public final double getHmin()
    Gets the value of the property hmin.
    Property description:
      The minimum allowable `hvalue` for this ScrollPane. Default value is 0.

  - ### hminProperty

    public final DoubleProperty hminProperty()
    The minimum allowable `hvalue` for this ScrollPane. Default value is 0.
    See Also:
      - `getHmin()`
      - `setHmin(double)`

  - ### setVmin

    public final void setVmin(double value)
    Sets the value of the property vmin.
    Property description:
      The minimum allowable `vvalue` for this ScrollPane. Default value is 0.

  - ### getVmin

    public final double getVmin()
    Gets the value of the property vmin.
    Property description:
      The minimum allowable `vvalue` for this ScrollPane. Default value is 0.

  - ### vminProperty

    public final DoubleProperty vminProperty()
    The minimum allowable `vvalue` for this ScrollPane. Default value is 0.
    See Also:
      - `getVmin()`
      - `setVmin(double)`

  - ### setHmax

    public final void setHmax(double value)
    Sets the value of the property hmax.
    Property description:
      The maximum allowable `hvalue` for this ScrollPane. Default value is 1.

  - ### getHmax

    public final double getHmax()
    Gets the value of the property hmax.
    Property description:
      The maximum allowable `hvalue` for this ScrollPane. Default value is 1.

  - ### hmaxProperty

    public final DoubleProperty hmaxProperty()
    The maximum allowable `hvalue` for this ScrollPane. Default value is 1.
    See Also:
      - `getHmax()`
      - `setHmax(double)`

  - ### setVmax

    public final void setVmax(double value)
    Sets the value of the property vmax.
    Property description:
      The maximum allowable `vvalue` for this ScrollPane. Default value is 1.

  - ### getVmax

    public final double getVmax()
    Gets the value of the property vmax.
    Property description:
      The maximum allowable `vvalue` for this ScrollPane. Default value is 1.

  - ### vmaxProperty

    public final DoubleProperty vmaxProperty()
    The maximum allowable `vvalue` for this ScrollPane. Default value is 1.
    See Also:
      - `getVmax()`
      - `setVmax(double)`

  - ### setFitToWidth

    public final void setFitToWidth(boolean value)
    Sets the value of the property fitToWidth.
    Property description:
      If true and if the contained node is a Resizable, then the node will be kept resized to match the width of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.

  - ### isFitToWidth

    public final boolean isFitToWidth()
    Gets the value of the property fitToWidth.
    Property description:
      If true and if the contained node is a Resizable, then the node will be kept resized to match the width of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.

  - ### fitToWidthProperty

    public final BooleanProperty fitToWidthProperty()
    If true and if the contained node is a Resizable, then the node will be kept resized to match the width of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.
    See Also:
      - `isFitToWidth()`
      - `setFitToWidth(boolean)`

  - ### setFitToHeight

    public final void setFitToHeight(boolean value)
    Sets the value of the property fitToHeight.
    Property description:
      If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.

  - ### isFitToHeight

    public final boolean isFitToHeight()
    Gets the value of the property fitToHeight.
    Property description:
      If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.

  - ### fitToHeightProperty

    public final BooleanProperty fitToHeightProperty()
    If true and if the contained node is a Resizable, then the node will be kept resized to match the height of the ScrollPane's viewport. If the contained node is not a Resizable, this value is ignored.
    See Also:
      - `isFitToHeight()`
      - `setFitToHeight(boolean)`

  - ### setPannable

    public final void setPannable(boolean value)
    Sets the value of the property pannable.
    Property description:
      Specifies whether the user should be able to pan the viewport by using the mouse. If mouse events reach the ScrollPane (that is, if mouse events are not blocked by the contained node or one of its children) then `pannable` is consulted to determine if the events should be used for panning.

  - ### isPannable

    public final boolean isPannable()
    Gets the value of the property pannable.
    Property description:
      Specifies whether the user should be able to pan the viewport by using the mouse. If mouse events reach the ScrollPane (that is, if mouse events are not blocked by the contained node or one of its children) then `pannable` is consulted to determine if the events should be used for panning.

  - ### pannableProperty

    public final BooleanProperty pannableProperty()
    Specifies whether the user should be able to pan the viewport by using the mouse. If mouse events reach the ScrollPane (that is, if mouse events are not blocked by the contained node or one of its children) then `pannable` is consulted to determine if the events should be used for panning.
    See Also:
      - `isPannable()`
      - `setPannable(boolean)`

  - ### setPrefViewportWidth

    public final void setPrefViewportWidth(double value)
    Sets the value of the property prefViewportWidth.
    Property description:
      Specify the preferred width of the ScrollPane Viewport. This is the width that will be available to the content node. The overall width of the ScrollPane is the ViewportWidth + padding

  - ### getPrefViewportWidth

    public final double getPrefViewportWidth()
    Gets the value of the property prefViewportWidth.
    Property description:
      Specify the preferred width of the ScrollPane Viewport. This is the width that will be available to the content node. The overall width of the ScrollPane is the ViewportWidth + padding

  - ### prefViewportWidthProperty

    public final DoubleProperty prefViewportWidthProperty()
    Specify the preferred width of the ScrollPane Viewport. This is the width that will be available to the content node. The overall width of the ScrollPane is the ViewportWidth + padding
    See Also:
      - `getPrefViewportWidth()`
      - `setPrefViewportWidth(double)`

  - ### setPrefViewportHeight

    public final void setPrefViewportHeight(double value)
    Sets the value of the property prefViewportHeight.
    Property description:
      Specify the preferred height of the ScrollPane Viewport. This is the height that will be available to the content node. The overall height of the ScrollPane is the ViewportHeight + padding

  - ### getPrefViewportHeight

    public final double getPrefViewportHeight()
    Gets the value of the property prefViewportHeight.
    Property description:
      Specify the preferred height of the ScrollPane Viewport. This is the height that will be available to the content node. The overall height of the ScrollPane is the ViewportHeight + padding

  - ### prefViewportHeightProperty

    public final DoubleProperty prefViewportHeightProperty()
    Specify the preferred height of the ScrollPane Viewport. This is the height that will be available to the content node. The overall height of the ScrollPane is the ViewportHeight + padding
    See Also:
      - `getPrefViewportHeight()`
      - `setPrefViewportHeight(double)`

  - ### setMinViewportWidth

    public final void setMinViewportWidth(double value)
    Sets the value of the property minViewportWidth.
    Property description:
      Specify the minimum width of the ScrollPane Viewport. This is the width that will be available to the content node.
    Since:
      JavaFX 8u40

  - ### getMinViewportWidth

    public final double getMinViewportWidth()
    Gets the value of the property minViewportWidth.
    Property description:
      Specify the minimum width of the ScrollPane Viewport. This is the width that will be available to the content node.
    Since:
      JavaFX 8u40

  - ### minViewportWidthProperty

    public final DoubleProperty minViewportWidthProperty()
    Specify the minimum width of the ScrollPane Viewport. This is the width that will be available to the content node.
    Since:
      JavaFX 8u40
    See Also:
      - `getMinViewportWidth()`
      - `setMinViewportWidth(double)`

  - ### setMinViewportHeight

    public final void setMinViewportHeight(double value)
    Sets the value of the property minViewportHeight.
    Property description:
      Specify the minimum height of the ScrollPane Viewport. This is the height that will be available to the content node.
    Since:
      JavaFX 8u40

  - ### getMinViewportHeight

    public final double getMinViewportHeight()
    Gets the value of the property minViewportHeight.
    Property description:
      Specify the minimum height of the ScrollPane Viewport. This is the height that will be available to the content node.
    Since:
      JavaFX 8u40

  - ### minViewportHeightProperty

    public final DoubleProperty minViewportHeightProperty()
    Specify the minimum height of the ScrollPane Viewport. This is the height that will be available to the content node.
    Since:
      JavaFX 8u40
    See Also:
      - `getMinViewportHeight()`
      - `setMinViewportHeight(double)`

  - ### setViewportBounds

    public final void setViewportBounds(Bounds value)
    Sets the value of the property viewportBounds.
    Property description:
      The actual Bounds of the ScrollPane Viewport. This is the Bounds of the content node.

  - ### getViewportBounds

    public final Bounds getViewportBounds()
    Gets the value of the property viewportBounds.
    Property description:
      The actual Bounds of the ScrollPane Viewport. This is the Bounds of the content node.

  - ### viewportBoundsProperty

    public final ObjectProperty<Bounds> viewportBoundsProperty()
    The actual Bounds of the ScrollPane Viewport. This is the Bounds of the content node.
    See Also:
      - `getViewportBounds()`
      - `setViewportBounds(Bounds)`

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