Class PopOver

java.lang.Object
javafx.stage.Window
javafx.stage.PopupWindow
javafx.scene.control.PopupControl
org.controlsfx.control.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(...);
 
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.BooleanProperty
    Stores the "animated" flag.
    final javafx.beans.property.DoubleProperty
    Controls the distance between the arrow and the corners of the pop over.
    final javafx.beans.property.ObjectProperty<PopOver.ArrowLocation>
    Stores the preferred arrow location.
    final javafx.beans.property.DoubleProperty
    Controls the size of the arrow.
    final javafx.beans.property.BooleanProperty
    Determines whether or not the header's close button should be available.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    Returns the content shown by the pop over.
    final javafx.beans.property.DoubleProperty
    Returns the corner radius property for the pop over.
    final javafx.beans.property.BooleanProperty
    Determines if the pop over is detachable at all.
    final javafx.beans.property.BooleanProperty
    Determines whether the pop over is detached from the owning node or not.
    final javafx.beans.property.ObjectProperty<javafx.util.Duration>
    Stores the fade-in duration.
    final javafx.beans.property.ObjectProperty<javafx.util.Duration>
    Stores the fade-out duration.
    final javafx.beans.property.BooleanProperty
    Determines whether or not the PopOver header should remain visible, even while attached.
    final javafx.beans.property.StringProperty
    Stores the title to display in the PopOver's header.

    Properties inherited from class javafx.scene.control.PopupControl

    id, maxHeight, maxWidth, minHeight, minWidth, prefHeight, prefWidth, skin, style

    Properties inherited from class javafx.stage.PopupWindow

    anchorLocation, anchorX, anchorY, autoFix, autoHide, consumeAutoHidingEvents, hideOnEscape, onAutoHide, ownerNode, ownerWindow

    Properties inherited from class javafx.stage.Window

    eventDispatcher, focused, forceIntegerRenderScale, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, opacity, outputScaleX, outputScaleY, renderScaleX, renderScaleY, scene, showing, width, x, y
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    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
    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

    Modifier and Type
    Method
    Description
    final javafx.beans.property.BooleanProperty
    Stores the "animated" flag.
    final javafx.beans.property.DoubleProperty
    Controls the distance between the arrow and the corners of the pop over.
    final javafx.beans.property.ObjectProperty<PopOver.ArrowLocation>
    Stores the preferred arrow location.
    final javafx.beans.property.DoubleProperty
    Controls the size of the arrow.
    final javafx.beans.property.BooleanProperty
    Determines whether or not the header's close button should be available.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    Returns the content shown by the pop over.
    final javafx.beans.property.DoubleProperty
    Returns the corner radius property for the pop over.
    protected javafx.scene.control.Skin<?>
     
    final void
    Detaches the pop over from the owning node.
    final javafx.beans.property.BooleanProperty
    Determines if the pop over is detachable at all.
    final javafx.beans.property.BooleanProperty
    Determines whether the pop over is detached from the owning node or not.
    final javafx.beans.property.ObjectProperty<javafx.util.Duration>
    Stores the fade-in duration.
    final javafx.beans.property.ObjectProperty<javafx.util.Duration>
    Stores the fade-out duration.
    final double
    Returns the value of the arrow indent property.
    Returns the value of the arrow location property.
    final double
    Returns the value of the arrow size property.
    final javafx.scene.Node
    Returns the value of the content property
    final double
    Returns the value of the corner radius property.
    final javafx.util.Duration
    Returns the value of the fade-in duration property.
    final javafx.util.Duration
    Returns the value of the fade-out duration property.
    final javafx.scene.layout.StackPane
    The root pane stores the content node of the popover.
    final String
    Returns the value of the title property.
    final javafx.beans.property.BooleanProperty
    Determines whether or not the PopOver header should remain visible, even while attached.
    final void
    Hides the pop over by quickly changing its opacity to 0.
    final void
    hide(javafx.util.Duration fadeOutDuration)
    Hides the pop over by quickly changing its opacity to 0.
    final boolean
    Returns the value of the "animated" property.
    final boolean
    Returns the value of the closeButtonEnabled property.
    final boolean
    Returns the value of the detachable property.
    final boolean
    Returns the value of the detached property.
    final boolean
    Returns the value of the detachable property.
    final void
    setAnimated(boolean animated)
    Sets the value of the "animated" property.
    final void
    setArrowIndent(double size)
    Sets the value of the arrow indent property.
    final void
    Sets the value of the arrow location property.
    final void
    setArrowSize(double size)
    Sets the value of the arrow size property.
    final void
    setCloseButtonEnabled(boolean enabled)
    Sets the value of the closeButtonEnabled property.
    final void
    setContentNode(javafx.scene.Node content)
    Sets the value of the content property.
    final void
    setCornerRadius(double radius)
    Sets the value of the corner radius property.
    final void
    setDetachable(boolean detachable)
    Sets the value of the detachable property.
    final void
    setDetached(boolean detached)
    Sets the value of the detached property.
    final void
    setFadeInDuration(javafx.util.Duration duration)
    Sets the value of the fade-in duration property.
    final void
    setFadeOutDuration(javafx.util.Duration duration)
    Sets the value of the fade-out duration property.
    final void
    setHeaderAlwaysVisible(boolean visible)
    Sets the value of the headerAlwaysVisible property.
    final void
    Sets the value of the title property.
    final void
    show(javafx.scene.Node owner)
    Shows the pop over in a position relative to the edges of the given owner node.
    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.
    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.
    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.
    final void
    show(javafx.stage.Window owner)
    final void
    show(javafx.stage.Window ownerWindow, double anchorX, double anchorY)
    final javafx.beans.property.StringProperty
    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Property Details

  • Constructor Details

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

    • 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
      See Also:
    • getContentNode

      public final javafx.scene.Node getContentNode()
      Returns the value of the content property
      Returns:
      the content node
      See Also:
    • 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:
    • 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

      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.
      Returns:
      the headerAlwaysVisible property
      See Also:
    • 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:
    • isHeaderAlwaysVisible

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

      public final javafx.beans.property.BooleanProperty closeButtonEnabledProperty()
      Determines whether or not the header's close button should be available.
      Returns:
      the closeButtonEnabled property
      See Also:
    • 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:
    • isCloseButtonEnabled

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

      public final javafx.beans.property.BooleanProperty detachableProperty()
      Determines if the pop over is detachable at all.
      Returns:
      the detachable property
      See Also:
    • 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:
    • 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:
    • 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
      See Also:
    • 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:
    • isDetached

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

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

      public final double getArrowSize()
      Returns the value of the arrow size property.
      Returns:
      the arrow size property value
      See Also:
    • 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:
    • 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
      See Also:
    • getArrowIndent

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

      public final void setArrowIndent(double size)
      Sets the value of the arrow indent property.
      Parameters:
      size - the arrow indent value
      See Also:
    • 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)
      See Also:
    • getCornerRadius

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

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

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

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

      public final void setTitle(String title)
      Sets the value of the title property.
      Parameters:
      title - the title to use when detached
      See Also:
    • 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:
    • setArrowLocation

      public final void setArrowLocation(PopOver.ArrowLocation location)
      Sets the value of the arrow location property.
      Parameters:
      location - the requested location
      See Also:
    • getArrowLocation

      public final PopOver.ArrowLocation getArrowLocation()
      Returns the value of the arrow location property.
      Returns:
      the preferred arrow location
      See Also:
    • 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
      See Also:
    • fadeOutDurationProperty

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

      public final javafx.util.Duration getFadeInDuration()
      Returns the value of the fade-in duration property.
      Returns:
      the fade-in duration
      See Also:
    • 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:
    • getFadeOutDuration

      public final javafx.util.Duration getFadeOutDuration()
      Returns the value of the fade-out duration property.
      Returns:
      the fade-out duration
      See Also:
    • 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:
    • 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
      See Also:
    • 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:
    • 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: