Class 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);
    Image of the ScrollPane control
    Since:
    JavaFX 2.0
    • Constructor Detail

      • 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 Detail

      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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
      • 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
      • 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.
      • createDefaultSkin

        protected Skin<?> createDefaultSkin()
        Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS -fx-skin or set explicitly in a sub-class with setSkin(...).
        Overrides:
        createDefaultSkin in class Control
        Returns:
        new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.
      • 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
      • 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
      • queryAccessibleAttribute

        public Object queryAccessibleAttribute​(AccessibleAttribute attribute,
                                               Object... parameters)
        This method is called by the assistive technology to request the value for an attribute.

        This method is commonly overridden by subclasses to implement attributes that are required for a specific role.
        If a particular attribute is not handled, the superclass implementation must be called.

        Overrides:
        queryAccessibleAttribute in class Control
        Parameters:
        attribute - the requested attribute
        parameters - optional list of parameters
        Returns:
        the value for the requested attribute
        See Also:
        AccessibleAttribute