Class PopOver

  • All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

    public class PopOver
    extends javafx.scene.control.PopupControl
    The PopOver control provides detailed information about an owning node in a popup window. The popup window has a very lightweight appearance (no default window decorations) and an arrow pointing at the owner. Due to the nature of popup windows the PopOver will move around with the parent window when the user drags it.
    Screenshot of PopOver

    The PopOver can be detached from the owning node by dragging it away from the owner. It stops displaying an arrow and starts displaying a title and a close icon.

    Screenshot of a detached PopOver

    The following image shows a popover with an accordion content node. PopOver controls are automatically resizing themselves when the content node changes its size.

    Screenshot of PopOver containing an Accordion

    For styling apply stylesheets to the root pane of the PopOver.

    Example:

     PopOver popOver = new PopOver();
     popOver.getRoot().getStylesheets().add(...);
     
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  PopOver.ArrowLocation
      All possible arrow locations.
      • Nested classes/interfaces inherited from class javafx.scene.control.PopupControl

        javafx.scene.control.PopupControl.CSSBridge
      • Nested classes/interfaces inherited from class javafx.stage.PopupWindow

        javafx.stage.PopupWindow.AnchorLocation
    • Field Summary

      • Fields inherited from class javafx.scene.control.PopupControl

        bridge, USE_COMPUTED_SIZE, USE_PREF_SIZE
    • Constructor Summary

      Constructors 
      Constructor Description
      PopOver()
      Creates a pop over with a label as the content node.
      PopOver​(javafx.scene.Node content)
      Creates a pop over with the given node as the content node.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javafx.beans.property.BooleanProperty animatedProperty()
      Stores the "animated" flag.
      javafx.beans.property.DoubleProperty arrowIndentProperty()
      Controls the distance between the arrow and the corners of the pop over.
      javafx.beans.property.ObjectProperty<PopOver.ArrowLocation> arrowLocationProperty()
      Stores the preferred arrow location.
      javafx.beans.property.DoubleProperty arrowSizeProperty()
      Controls the size of the arrow.
      javafx.beans.property.BooleanProperty closeButtonEnabledProperty()
      Determines whether or not the header's close button should be available.
      javafx.beans.property.ObjectProperty<javafx.scene.Node> contentNodeProperty()
      Returns the content shown by the pop over.
      javafx.beans.property.DoubleProperty cornerRadiusProperty()
      Returns the corner radius property for the pop over.
      protected javafx.scene.control.Skin<?> createDefaultSkin()  
      void detach()
      Detaches the pop over from the owning node.
      javafx.beans.property.BooleanProperty detachableProperty()
      Determines if the pop over is detachable at all.
      javafx.beans.property.BooleanProperty detachedProperty()
      Determines whether the pop over is detached from the owning node or not.
      javafx.beans.property.ObjectProperty<javafx.util.Duration> fadeInDurationProperty()
      Stores the fade-in duration.
      javafx.beans.property.ObjectProperty<javafx.util.Duration> fadeOutDurationProperty()
      Stores the fade-out duration.
      double getArrowIndent()
      Returns the value of the arrow indent property.
      PopOver.ArrowLocation getArrowLocation()
      Returns the value of the arrow location property.
      double getArrowSize()
      Returns the value of the arrow size property.
      javafx.scene.Node getContentNode()
      Returns the value of the content property
      double getCornerRadius()
      Returns the value of the corner radius property.
      javafx.util.Duration getFadeInDuration()
      Returns the value of the fade-in duration property.
      javafx.util.Duration getFadeOutDuration()
      Returns the value of the fade-out duration property.
      javafx.scene.layout.StackPane getRoot()
      The root pane stores the content node of the popover.
      String getTitle()
      Returns the value of the title property.
      javafx.beans.property.BooleanProperty headerAlwaysVisibleProperty()
      Determines whether or not the PopOver header should remain visible, even while attached.
      void hide()
      Hides the pop over by quickly changing its opacity to 0.
      void hide​(javafx.util.Duration fadeOutDuration)
      Hides the pop over by quickly changing its opacity to 0.
      boolean isAnimated()
      Returns the value of the "animated" property.
      boolean isCloseButtonEnabled()
      Returns the value of the closeButtonEnabled property.
      boolean isDetachable()
      Returns the value of the detachable property.
      boolean isDetached()
      Returns the value of the detached property.
      boolean isHeaderAlwaysVisible()
      Returns the value of the detachable property.
      void setAnimated​(boolean animated)
      Sets the value of the "animated" property.
      void setArrowIndent​(double size)
      Sets the value of the arrow indent property.
      void setArrowLocation​(PopOver.ArrowLocation location)
      Sets the value of the arrow location property.
      void setArrowSize​(double size)
      Sets the value of the arrow size property.
      void setCloseButtonEnabled​(boolean enabled)
      Sets the value of the closeButtonEnabled property.
      void setContentNode​(javafx.scene.Node content)
      Sets the value of the content property.
      void setCornerRadius​(double radius)
      Sets the value of the corner radius property.
      void setDetachable​(boolean detachable)
      Sets the value of the detachable property.
      void setDetached​(boolean detached)
      Sets the value of the detached property.
      void setFadeInDuration​(javafx.util.Duration duration)
      Sets the value of the fade-in duration property.
      void setFadeOutDuration​(javafx.util.Duration duration)
      Sets the value of the fade-out duration property.
      void setHeaderAlwaysVisible​(boolean visible)
      Sets the value of the headerAlwaysVisible property.
      void setTitle​(String title)
      Sets the value of the title property.
      void show​(javafx.scene.Node owner)
      Shows the pop over in a position relative to the edges of the given owner node.
      void show​(javafx.scene.Node owner, double offset)
      Shows the pop over in a position relative to the edges of the given owner node.
      void show​(javafx.scene.Node owner, double x, double y)
      Makes the pop over visible at the give location and associates it with the given owner node.
      void show​(javafx.scene.Node owner, double x, double y, javafx.util.Duration fadeInDuration)
      Makes the pop over visible at the give location and associates it with the given owner node.
      void show​(javafx.stage.Window owner)
      void show​(javafx.stage.Window ownerWindow, double anchorX, double anchorY)
      javafx.beans.property.StringProperty titleProperty()
      Stores the title to display in the PopOver's header.
      • Methods inherited from class javafx.scene.control.PopupControl

        getClassCssMetaData, getCssMetaData, getId, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getPrefHeight, getPrefWidth, getPseudoClassStates, getSkin, getStyle, getStyleableNode, getStyleableParent, getStyleClass, getTypeSelector, idProperty, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, pseudoClassStateChanged, setId, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setPrefHeight, setPrefSize, setPrefWidth, setSkin, setStyle, skinProperty, styleProperty
      • Methods inherited from class javafx.stage.PopupWindow

        anchorLocationProperty, anchorXProperty, anchorYProperty, autoFixProperty, autoHideProperty, consumeAutoHidingEventsProperty, getAnchorLocation, getAnchorX, getAnchorY, getConsumeAutoHidingEvents, getOnAutoHide, getOwnerNode, getOwnerWindow, hideOnEscapeProperty, isAutoFix, isAutoHide, isHideOnEscape, onAutoHideProperty, ownerNodeProperty, ownerWindowProperty, setAnchorLocation, setAnchorX, setAnchorY, setAutoFix, setAutoHide, setConsumeAutoHidingEvents, setHideOnEscape, setOnAutoHide, setScene
      • Methods inherited from class javafx.stage.Window

        addEventFilter, addEventHandler, buildEventDispatchChain, centerOnScreen, eventDispatcherProperty, fireEvent, focusedProperty, forceIntegerRenderScaleProperty, getEventDispatcher, getHeight, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOpacity, getOutputScaleX, getOutputScaleY, getProperties, getRenderScaleX, getRenderScaleY, getScene, getUserData, getWidth, getWindows, getX, getY, hasProperties, heightProperty, isFocused, isForceIntegerRenderScale, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, opacityProperty, outputScaleXProperty, outputScaleYProperty, removeEventFilter, removeEventHandler, renderScaleXProperty, renderScaleYProperty, requestFocus, sceneProperty, setEventDispatcher, setEventHandler, setForceIntegerRenderScale, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setOpacity, setRenderScaleX, setRenderScaleY, setUserData, setWidth, setX, setY, show, showingProperty, sizeToScene, widthProperty, xProperty, yProperty
    • Constructor Detail

      • PopOver

        public PopOver()
        Creates a pop over with a label as the content node.
      • PopOver

        public PopOver​(javafx.scene.Node content)
        Creates a pop over with the given node as the content node.
        Parameters:
        content - The content shown by the pop over
    • Method Detail

      • createDefaultSkin

        protected javafx.scene.control.Skin<?> createDefaultSkin()
        Overrides:
        createDefaultSkin in class javafx.scene.control.PopupControl
      • getRoot

        public final javafx.scene.layout.StackPane getRoot()
        The root pane stores the content node of the popover. It is accessible via this method in order to support proper styling.

        Example:

         PopOver popOver = new PopOver();
         popOver.getRoot().getStylesheets().add(...);
         
        Returns:
        the root pane
      • contentNodeProperty

        public final javafx.beans.property.ObjectProperty<javafx.scene.Node> contentNodeProperty()
        Returns the content shown by the pop over.
        Returns:
        the content node property
      • getContentNode

        public final javafx.scene.Node getContentNode()
        Returns the value of the content property
        Returns:
        the content node
        See Also:
        contentNodeProperty()
      • setContentNode

        public final void setContentNode​(javafx.scene.Node content)
        Sets the value of the content property.
        Parameters:
        content - the new content node value
        See Also:
        contentNodeProperty()
      • show

        public final void show​(javafx.scene.Node owner)
        Shows the pop over in a position relative to the edges of the given owner node. The position is dependent on the arrow location. If the arrow is pointing to the right then the pop over will be placed to the left of the given owner. If the arrow points up then the pop over will be placed below the given owner node. The arrow will slightly overlap with the owner node.
        Parameters:
        owner - the owner of the pop over
      • show

        public final void show​(javafx.scene.Node owner,
                               double offset)
        Shows the pop over in a position relative to the edges of the given owner node. The position is dependent on the arrow location. If the arrow is pointing to the right then the pop over will be placed to the left of the given owner. If the arrow points up then the pop over will be placed below the given owner node.
        Parameters:
        owner - the owner of the pop over
        offset - if negative specifies the distance to the owner node or when positive specifies the number of pixels that the arrow will overlap with the owner node (positive values are recommended)
      • show

        public final void show​(javafx.stage.Window owner)
        Overrides:
        show in class javafx.stage.PopupWindow
      • show

        public final void show​(javafx.stage.Window ownerWindow,
                               double anchorX,
                               double anchorY)
        Overrides:
        show in class javafx.stage.PopupWindow
      • show

        public final void show​(javafx.scene.Node owner,
                               double x,
                               double y)
        Makes the pop over visible at the give location and associates it with the given owner node. The x and y coordinate will be the target location of the arrow of the pop over and not the location of the window.
        Overrides:
        show in class javafx.stage.PopupWindow
        Parameters:
        owner - the owning node
        x - the x coordinate for the pop over arrow tip
        y - the y coordinate for the pop over arrow tip
      • show

        public final void show​(javafx.scene.Node owner,
                               double x,
                               double y,
                               javafx.util.Duration fadeInDuration)
        Makes the pop over visible at the give location and associates it with the given owner node. The x and y coordinate will be the target location of the arrow of the pop over and not the location of the window.
        Parameters:
        owner - the owning node
        x - the x coordinate for the pop over arrow tip
        y - the y coordinate for the pop over arrow tip
        fadeInDuration - the time it takes for the pop over to be fully visible. This duration takes precedence over the fade-in property without setting.
      • hide

        public final void hide()
        Hides the pop over by quickly changing its opacity to 0.
        Overrides:
        hide in class javafx.stage.PopupWindow
        See Also:
        hide(Duration)
      • hide

        public final void hide​(javafx.util.Duration fadeOutDuration)
        Hides the pop over by quickly changing its opacity to 0.
        Parameters:
        fadeOutDuration - the duration of the fade transition that is being used to change the opacity of the pop over
        Since:
        1.0
      • detach

        public final void detach()
        Detaches the pop over from the owning node. The pop over will no longer display an arrow pointing at the owner node.
      • headerAlwaysVisibleProperty

        public final javafx.beans.property.BooleanProperty headerAlwaysVisibleProperty()
        Determines whether or not the PopOver header should remain visible, even while attached.
      • setHeaderAlwaysVisible

        public final void setHeaderAlwaysVisible​(boolean visible)
        Sets the value of the headerAlwaysVisible property.
        Parameters:
        visible - if true, then the header is visible even while attached
        See Also:
        headerAlwaysVisibleProperty()
      • isHeaderAlwaysVisible

        public final boolean isHeaderAlwaysVisible()
        Returns the value of the detachable property.
        Returns:
        true if the header is visible even while attached
        See Also:
        headerAlwaysVisibleProperty()
      • closeButtonEnabledProperty

        public final javafx.beans.property.BooleanProperty closeButtonEnabledProperty()
        Determines whether or not the header's close button should be available.
      • setCloseButtonEnabled

        public final void setCloseButtonEnabled​(boolean enabled)
        Sets the value of the closeButtonEnabled property.
        Parameters:
        enabled - if false, the pop over will not be closeable by the header's close button
        See Also:
        closeButtonEnabledProperty()
      • isCloseButtonEnabled

        public final boolean isCloseButtonEnabled()
        Returns the value of the closeButtonEnabled property.
        Returns:
        true if the header's close button is enabled
        See Also:
        closeButtonEnabledProperty()
      • detachableProperty

        public final javafx.beans.property.BooleanProperty detachableProperty()
        Determines if the pop over is detachable at all.
      • setDetachable

        public final void setDetachable​(boolean detachable)
        Sets the value of the detachable property.
        Parameters:
        detachable - if true then the user can detach / tear off the pop over
        See Also:
        detachableProperty()
      • isDetachable

        public final boolean isDetachable()
        Returns the value of the detachable property.
        Returns:
        true if the user is allowed to detach / tear off the pop over
        See Also:
        detachableProperty()
      • detachedProperty

        public final javafx.beans.property.BooleanProperty detachedProperty()
        Determines whether the pop over is detached from the owning node or not. A detached pop over no longer shows an arrow pointing at the owner and features its own title bar.
        Returns:
        the detached property
      • setDetached

        public final void setDetached​(boolean detached)
        Sets the value of the detached property.
        Parameters:
        detached - if true the pop over will change its apperance to "detached" mode
        See Also:
        detachedProperty()
      • isDetached

        public final boolean isDetached()
        Returns the value of the detached property.
        Returns:
        true if the pop over is currently detached.
        See Also:
        detachedProperty()
      • arrowSizeProperty

        public final javafx.beans.property.DoubleProperty arrowSizeProperty()
        Controls the size of the arrow. Default value is 12.
        Returns:
        the arrow size property
      • getArrowSize

        public final double getArrowSize()
        Returns the value of the arrow size property.
        Returns:
        the arrow size property value
        See Also:
        arrowSizeProperty()
      • setArrowSize

        public final void setArrowSize​(double size)
        Sets the value of the arrow size property.
        Parameters:
        size - the new value of the arrow size property
        See Also:
        arrowSizeProperty()
      • arrowIndentProperty

        public final javafx.beans.property.DoubleProperty arrowIndentProperty()
        Controls the distance between the arrow and the corners of the pop over. The default value is 12.
        Returns:
        the arrow indent property
      • getArrowIndent

        public final double getArrowIndent()
        Returns the value of the arrow indent property.
        Returns:
        the arrow indent value
        See Also:
        arrowIndentProperty()
      • setArrowIndent

        public final void setArrowIndent​(double size)
        Sets the value of the arrow indent property.
        Parameters:
        size - the arrow indent value
        See Also:
        arrowIndentProperty()
      • cornerRadiusProperty

        public final javafx.beans.property.DoubleProperty cornerRadiusProperty()
        Returns the corner radius property for the pop over.
        Returns:
        the corner radius property (default is 6)
      • getCornerRadius

        public final double getCornerRadius()
        Returns the value of the corner radius property.
        Returns:
        the corner radius
        See Also:
        cornerRadiusProperty()
      • setCornerRadius

        public final void setCornerRadius​(double radius)
        Sets the value of the corner radius property.
        Parameters:
        radius - the corner radius
        See Also:
        cornerRadiusProperty()
      • titleProperty

        public final javafx.beans.property.StringProperty titleProperty()
        Stores the title to display in the PopOver's header.
        Returns:
        the title property
      • getTitle

        public final String getTitle()
        Returns the value of the title property.
        Returns:
        the detached title
        See Also:
        titleProperty()
      • setTitle

        public final void setTitle​(String title)
        Sets the value of the title property.
        Parameters:
        title - the title to use when detached
        See Also:
        titleProperty()
      • arrowLocationProperty

        public final javafx.beans.property.ObjectProperty<PopOver.ArrowLocation> arrowLocationProperty()
        Stores the preferred arrow location. This might not be the actual location of the arrow if auto fix is enabled.
        Returns:
        the arrow location property
        See Also:
        PopupWindow.setAutoFix(boolean)
      • fadeInDurationProperty

        public final javafx.beans.property.ObjectProperty<javafx.util.Duration> fadeInDurationProperty()
        Stores the fade-in duration. This should be set before calling PopOver.show(..).
        Returns:
        the fade-in duration property
      • fadeOutDurationProperty

        public final javafx.beans.property.ObjectProperty<javafx.util.Duration> fadeOutDurationProperty()
        Stores the fade-out duration.
        Returns:
        the fade-out duration property
      • getFadeInDuration

        public final javafx.util.Duration getFadeInDuration()
        Returns the value of the fade-in duration property.
        Returns:
        the fade-in duration
        See Also:
        fadeInDurationProperty()
      • setFadeInDuration

        public final void setFadeInDuration​(javafx.util.Duration duration)
        Sets the value of the fade-in duration property. This should be set before calling PopOver.show(..).
        Parameters:
        duration - the requested fade-in duration
        See Also:
        fadeInDurationProperty()
      • getFadeOutDuration

        public final javafx.util.Duration getFadeOutDuration()
        Returns the value of the fade-out duration property.
        Returns:
        the fade-out duration
        See Also:
        fadeOutDurationProperty()
      • setFadeOutDuration

        public final void setFadeOutDuration​(javafx.util.Duration duration)
        Sets the value of the fade-out duration property.
        Parameters:
        duration - the requested fade-out duration
        See Also:
        fadeOutDurationProperty()
      • animatedProperty

        public final javafx.beans.property.BooleanProperty animatedProperty()
        Stores the "animated" flag. If true then the PopOver will be shown / hidden with a short fade in / out animation.
        Returns:
        the "animated" property
      • isAnimated

        public final boolean isAnimated()
        Returns the value of the "animated" property.
        Returns:
        true if the PopOver will be shown and hidden with a short fade animation
        See Also:
        animatedProperty()
      • setAnimated

        public final void setAnimated​(boolean animated)
        Sets the value of the "animated" property.
        Parameters:
        animated - if true the PopOver will be shown and hidden with a short fade animation
        See Also:
        animatedProperty()