java.lang.Object
javafx.stage.Window
javafx.stage.PopupWindow
javafx.scene.control.PopupControl
javafx.scene.control.Tooltip
- All Implemented Interfaces:
Styleable
,EventTarget
,Skinnable
@IDProperty("id") public class Tooltip extends PopupControl
Tooltips are common UI elements which are typically used for showing
additional information about a Node in the scenegraph when the Node is
hovered over by the mouse. Any Node can show a tooltip. In most cases a
Tooltip is created and its
text
property is modified
to show plain text to the user. However, a Tooltip is able to show within it
an arbitrary scenegraph of nodes - this is done by creating the scenegraph
and setting it inside the Tooltip graphic
property.
You use the following approach to set a Tooltip on any node:
Rectangle rect = new Rectangle(0, 0, 100, 100); Tooltip t = new Tooltip("A Square"); Tooltip.install(rect, t);This tooltip will then participate with the typical tooltip semantics (i.e. appearing on hover, etc). Note that the Tooltip does not have to be uninstalled: it will be garbage collected when it is not referenced by any Node. It is possible to manually uninstall the tooltip, however.
A single tooltip can be installed on multiple target nodes or multiple controls.
Because most Tooltips are shown on UI controls, there is special API for all controls to make installing a Tooltip less verbose. The example below shows how to create a tooltip for a Button control:
Button button = new Button("Hover Over Me"); button.setTooltip(new Tooltip("Tooltip for Button"));
- Since:
- JavaFX 2.0
-
Property Summary
Properties Type Property Description ReadOnlyBooleanProperty
activated
Typically, the tooltip is "activated" when the mouse moves over a Control.ObjectProperty<ContentDisplay>
contentDisplay
Specifies the positioning of the graphic relative to the text.ObjectProperty<Font>
font
The default font to use for text in the Tooltip.ObjectProperty<Node>
graphic
An optional icon for the Tooltip.DoubleProperty
graphicTextGap
The amount of space between the graphic and textObjectProperty<Duration>
hideDelay
The duration in which to continue showing the tooltip after the mouse has left the node.ObjectProperty<Duration>
showDelay
The delay between the mouse entering the hovered node and when the associated tooltip will be shown to the user.ObjectProperty<Duration>
showDuration
The duration that the tooltip should remain showing for until it is no longer visible to the user.ObjectProperty<TextAlignment>
textAlignment
Specifies the behavior for lines of text when text is multiline.ObjectProperty<OverrunStyle>
textOverrun
Specifies the behavior to use if the text of theTooltip
exceeds the available space for rendering the text.StringProperty
text
The text to display in the tooltip.BooleanProperty
wrapText
If a run of text exceeds the width of the Tooltip, then this variable indicates whether the text should wrap onto another line.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
-
Field Summary
Fields inherited from class javafx.scene.control.PopupControl
bridge, USE_COMPUTED_SIZE, USE_PREF_SIZE
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description ReadOnlyBooleanProperty
activatedProperty()
Typically, the tooltip is "activated" when the mouse moves over a Control.ObjectProperty<ContentDisplay>
contentDisplayProperty()
Specifies the positioning of the graphic relative to the text.protected Skin<?>
createDefaultSkin()
Create a new instance of the default skin for this control.ObjectProperty<Font>
fontProperty()
The default font to use for text in the Tooltip.static List<CssMetaData<? extends Styleable,?>>
getClassCssMetaData()
ContentDisplay
getContentDisplay()
Gets the value of the property contentDisplay.List<CssMetaData<? extends Styleable,?>>
getCssMetaData()
The CssMetaData of this Styleable.Font
getFont()
Gets the value of the property font.Node
getGraphic()
Gets the value of the property graphic.double
getGraphicTextGap()
Gets the value of the property graphicTextGap.Duration
getHideDelay()
Gets the value of the property hideDelay.Duration
getShowDelay()
Gets the value of the property showDelay.Duration
getShowDuration()
Gets the value of the property showDuration.Styleable
getStyleableParent()
Return the parent of this Styleable, or null if there is no parent.String
getText()
Gets the value of the property text.TextAlignment
getTextAlignment()
Gets the value of the property textAlignment.OverrunStyle
getTextOverrun()
Gets the value of the property textOverrun.ObjectProperty<Node>
graphicProperty()
An optional icon for the Tooltip.DoubleProperty
graphicTextGapProperty()
The amount of space between the graphic and textObjectProperty<Duration>
hideDelayProperty()
The duration in which to continue showing the tooltip after the mouse has left the node.static void
install(Node node, Tooltip t)
boolean
isActivated()
Gets the value of the property activated.boolean
isWrapText()
Gets the value of the property wrapText.void
setContentDisplay(ContentDisplay value)
Sets the value of the property contentDisplay.void
setFont(Font value)
Sets the value of the property font.void
setGraphic(Node value)
Sets the value of the property graphic.void
setGraphicTextGap(double value)
Sets the value of the property graphicTextGap.void
setHideDelay(Duration hideDelay)
Sets the value of the property hideDelay.void
setShowDelay(Duration showDelay)
Sets the value of the property showDelay.void
setShowDuration(Duration showDuration)
Sets the value of the property showDuration.void
setText(String value)
Sets the value of the property text.void
setTextAlignment(TextAlignment value)
Sets the value of the property textAlignment.void
setTextOverrun(OverrunStyle value)
Sets the value of the property textOverrun.void
setWrapText(boolean value)
Sets the value of the property wrapText.ObjectProperty<Duration>
showDelayProperty()
The delay between the mouse entering the hovered node and when the associated tooltip will be shown to the user.ObjectProperty<Duration>
showDurationProperty()
The duration that the tooltip should remain showing for until it is no longer visible to the user.ObjectProperty<TextAlignment>
textAlignmentProperty()
Specifies the behavior for lines of text when text is multiline.ObjectProperty<OverrunStyle>
textOverrunProperty()
Specifies the behavior to use if the text of theTooltip
exceeds the available space for rendering the text.StringProperty
textProperty()
The text to display in the tooltip.static void
uninstall(Node node, Tooltip t)
BooleanProperty
wrapTextProperty()
If a run of text exceeds the width of the Tooltip, then this variable indicates whether the text should wrap onto another line.Methods inherited from class javafx.scene.control.PopupControl
getId, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getPrefHeight, getPrefWidth, getPseudoClassStates, getSkin, getStyle, getStyleableNode, 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, hide, hideOnEscapeProperty, isAutoFix, isAutoHide, isHideOnEscape, onAutoHideProperty, ownerNodeProperty, ownerWindowProperty, setAnchorLocation, setAnchorX, setAnchorY, setAutoFix, setAutoHide, setConsumeAutoHidingEvents, setHideOnEscape, setOnAutoHide, setScene, show, show, show
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
-
Property Details
-
text
The text to display in the tooltip. If the text is set to null, an empty string will be displayed, despite the value being null.- See Also:
getText()
,setText(String)
-
textAlignment
Specifies the behavior for lines of text when text is multiline. UnlikecontentDisplay
which affects the graphic and text, this setting only affects multiple lines of text relative to the text bounds. -
textOverrun
Specifies the behavior to use if the text of theTooltip
exceeds the available space for rendering the text.- See Also:
getTextOverrun()
,setTextOverrun(OverrunStyle)
-
wrapText
If a run of text exceeds the width of the Tooltip, then this variable indicates whether the text should wrap onto another line.- See Also:
isWrapText()
,setWrapText(boolean)
-
font
The default font to use for text in the Tooltip. If the Tooltip's text is rich text then this font may or may not be used depending on the font information embedded in the rich text, but in any case where a default font is required, this font will be used.- See Also:
getFont()
,setFont(Font)
-
showDelay
The delay between the mouse entering the hovered node and when the associated tooltip will be shown to the user. The default delay is 1000ms.- Default value:
- 1000ms
- Since:
- 9
- See Also:
getShowDelay()
,setShowDelay(Duration)
-
showDuration
The duration that the tooltip should remain showing for until it is no longer visible to the user. If the mouse leaves the control before the showDuration finishes, then the tooltip will remain showing for the duration specified in thehideDelayProperty()
, even if the remaining time of the showDuration is less than the hideDelay duration. The default value is 5000ms.- Default value:
- 5000ms
- Since:
- 9
- See Also:
getShowDuration()
,setShowDuration(Duration)
-
hideDelay
The duration in which to continue showing the tooltip after the mouse has left the node. Once this time has elapsed the tooltip will hide. The default value is 200ms.- Default value:
- 200ms
- Since:
- 9
- See Also:
getHideDelay()
,setHideDelay(Duration)
-
graphic
An optional icon for the Tooltip. This can be positioned relative to the text by using thecontent display
property. The node specified for this variable cannot appear elsewhere in the scene graph, otherwise theIllegalArgumentException
is thrown. See the class description ofNode
for more detail.- See Also:
getGraphic()
,setGraphic(Node)
-
contentDisplay
Specifies the positioning of the graphic relative to the text. -
graphicTextGap
The amount of space between the graphic and text- See Also:
getGraphicTextGap()
,setGraphicTextGap(double)
-
activated
Typically, the tooltip is "activated" when the mouse moves over a Control. There is usually some delay between when the Tooltip becomes "activated" and when it is actually shown. The details (such as the amount of delay, etc) is left to the Skin implementation.- See Also:
isActivated()
-
-
Constructor Details
-
Method Details
-
install
Associates the givenTooltip
with the givenNode
. The tooltip can then behave similar to when it is set on anyControl
. A single tooltip can be associated with multiple nodes.- Parameters:
node
- the nodet
- the tooltip- See Also:
Tooltip
-
uninstall
Removes the association of the givenTooltip
on the specifiedNode
. Hence hovering on the node will no longer result in showing of the tooltip.- Parameters:
node
- the nodet
- the tooltip- See Also:
Tooltip
-
textProperty
The text to display in the tooltip. If the text is set to null, an empty string will be displayed, despite the value being null.- See Also:
getText()
,setText(String)
-
setText
Sets the value of the property text.- Property description:
- The text to display in the tooltip. If the text is set to null, an empty string will be displayed, despite the value being null.
-
getText
Gets the value of the property text.- Property description:
- The text to display in the tooltip. If the text is set to null, an empty string will be displayed, despite the value being null.
-
textAlignmentProperty
Specifies the behavior for lines of text when text is multiline. UnlikecontentDisplay
which affects the graphic and text, this setting only affects multiple lines of text relative to the text bounds. -
setTextAlignment
Sets the value of the property textAlignment.- Property description:
- Specifies the behavior for lines of text when text is multiline.
Unlike
contentDisplay
which affects the graphic and text, this setting only affects multiple lines of text relative to the text bounds.
-
getTextAlignment
Gets the value of the property textAlignment.- Property description:
- Specifies the behavior for lines of text when text is multiline.
Unlike
contentDisplay
which affects the graphic and text, this setting only affects multiple lines of text relative to the text bounds.
-
textOverrunProperty
Specifies the behavior to use if the text of theTooltip
exceeds the available space for rendering the text.- See Also:
getTextOverrun()
,setTextOverrun(OverrunStyle)
-
setTextOverrun
Sets the value of the property textOverrun.- Property description:
- Specifies the behavior to use if the text of the
Tooltip
exceeds the available space for rendering the text.
-
getTextOverrun
Gets the value of the property textOverrun.- Property description:
- Specifies the behavior to use if the text of the
Tooltip
exceeds the available space for rendering the text.
-
wrapTextProperty
If a run of text exceeds the width of the Tooltip, then this variable indicates whether the text should wrap onto another line.- See Also:
isWrapText()
,setWrapText(boolean)
-
setWrapText
public final void setWrapText(boolean value)Sets the value of the property wrapText.- Property description:
- If a run of text exceeds the width of the Tooltip, then this variable indicates whether the text should wrap onto another line.
-
isWrapText
public final boolean isWrapText()Gets the value of the property wrapText.- Property description:
- If a run of text exceeds the width of the Tooltip, then this variable indicates whether the text should wrap onto another line.
-
fontProperty
The default font to use for text in the Tooltip. If the Tooltip's text is rich text then this font may or may not be used depending on the font information embedded in the rich text, but in any case where a default font is required, this font will be used.- See Also:
getFont()
,setFont(Font)
-
setFont
Sets the value of the property font.- Property description:
- The default font to use for text in the Tooltip. If the Tooltip's text is rich text then this font may or may not be used depending on the font information embedded in the rich text, but in any case where a default font is required, this font will be used.
-
getFont
Gets the value of the property font.- Property description:
- The default font to use for text in the Tooltip. If the Tooltip's text is rich text then this font may or may not be used depending on the font information embedded in the rich text, but in any case where a default font is required, this font will be used.
-
showDelayProperty
The delay between the mouse entering the hovered node and when the associated tooltip will be shown to the user. The default delay is 1000ms.- Default value:
- 1000ms
- Since:
- 9
- See Also:
getShowDelay()
,setShowDelay(Duration)
-
setShowDelay
Sets the value of the property showDelay.- Property description:
- The delay between the mouse entering the hovered node and when the associated tooltip will be shown to the user. The default delay is 1000ms.
- Default value:
- 1000ms
- Since:
- 9
-
getShowDelay
Gets the value of the property showDelay.- Property description:
- The delay between the mouse entering the hovered node and when the associated tooltip will be shown to the user. The default delay is 1000ms.
- Default value:
- 1000ms
- Since:
- 9
-
showDurationProperty
The duration that the tooltip should remain showing for until it is no longer visible to the user. If the mouse leaves the control before the showDuration finishes, then the tooltip will remain showing for the duration specified in thehideDelayProperty()
, even if the remaining time of the showDuration is less than the hideDelay duration. The default value is 5000ms.- Default value:
- 5000ms
- Since:
- 9
- See Also:
getShowDuration()
,setShowDuration(Duration)
-
setShowDuration
Sets the value of the property showDuration.- Property description:
- The duration that the tooltip should remain showing for until it is no longer visible to the user.
If the mouse leaves the control before the showDuration finishes, then the tooltip will remain showing
for the duration specified in the
hideDelayProperty()
, even if the remaining time of the showDuration is less than the hideDelay duration. The default value is 5000ms. - Default value:
- 5000ms
- Since:
- 9
-
getShowDuration
Gets the value of the property showDuration.- Property description:
- The duration that the tooltip should remain showing for until it is no longer visible to the user.
If the mouse leaves the control before the showDuration finishes, then the tooltip will remain showing
for the duration specified in the
hideDelayProperty()
, even if the remaining time of the showDuration is less than the hideDelay duration. The default value is 5000ms. - Default value:
- 5000ms
- Since:
- 9
-
hideDelayProperty
The duration in which to continue showing the tooltip after the mouse has left the node. Once this time has elapsed the tooltip will hide. The default value is 200ms.- Default value:
- 200ms
- Since:
- 9
- See Also:
getHideDelay()
,setHideDelay(Duration)
-
setHideDelay
Sets the value of the property hideDelay.- Property description:
- The duration in which to continue showing the tooltip after the mouse has left the node. Once this time has elapsed the tooltip will hide. The default value is 200ms.
- Default value:
- 200ms
- Since:
- 9
-
getHideDelay
Gets the value of the property hideDelay.- Property description:
- The duration in which to continue showing the tooltip after the mouse has left the node. Once this time has elapsed the tooltip will hide. The default value is 200ms.
- Default value:
- 200ms
- Since:
- 9
-
graphicProperty
An optional icon for the Tooltip. This can be positioned relative to the text by using thecontent display
property. The node specified for this variable cannot appear elsewhere in the scene graph, otherwise theIllegalArgumentException
is thrown. See the class description ofNode
for more detail.- See Also:
getGraphic()
,setGraphic(Node)
-
setGraphic
Sets the value of the property graphic.- Property description:
- An optional icon for the Tooltip. This can be positioned relative to the
text by using the
content display
property. The node specified for this variable cannot appear elsewhere in the scene graph, otherwise theIllegalArgumentException
is thrown. See the class description ofNode
for more detail.
-
getGraphic
Gets the value of the property graphic.- Property description:
- An optional icon for the Tooltip. This can be positioned relative to the
text by using the
content display
property. The node specified for this variable cannot appear elsewhere in the scene graph, otherwise theIllegalArgumentException
is thrown. See the class description ofNode
for more detail.
-
contentDisplayProperty
Specifies the positioning of the graphic relative to the text. -
setContentDisplay
Sets the value of the property contentDisplay.- Property description:
- Specifies the positioning of the graphic relative to the text.
-
getContentDisplay
Gets the value of the property contentDisplay.- Property description:
- Specifies the positioning of the graphic relative to the text.
-
graphicTextGapProperty
The amount of space between the graphic and text- See Also:
getGraphicTextGap()
,setGraphicTextGap(double)
-
setGraphicTextGap
public final void setGraphicTextGap(double value)Sets the value of the property graphicTextGap.- Property description:
- The amount of space between the graphic and text
-
getGraphicTextGap
public final double getGraphicTextGap()Gets the value of the property graphicTextGap.- Property description:
- The amount of space between the graphic and text
-
isActivated
public final boolean isActivated()Gets the value of the property activated.- Property description:
- Typically, the tooltip is "activated" when the mouse moves over a Control. There is usually some delay between when the Tooltip becomes "activated" and when it is actually shown. The details (such as the amount of delay, etc) is left to the Skin implementation.
-
activatedProperty
Typically, the tooltip is "activated" when the mouse moves over a Control. There is usually some delay between when the Tooltip becomes "activated" and when it is actually shown. The details (such as the amount of delay, etc) is left to the Skin implementation.- See Also:
isActivated()
-
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 withsetSkin(...)
.- Overrides:
createDefaultSkin
in classPopupControl
- 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
- Returns:
- The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
- Since:
- JavaFX 8.0
-
getCssMetaData
The CssMetaData of this Styleable. This may be returned as an unmodifiable list.- Specified by:
getCssMetaData
in interfaceStyleable
- Overrides:
getCssMetaData
in classPopupControl
- Returns:
- the CssMetaData
- Since:
- JavaFX 8.0
-
getStyleableParent
Description copied from class:PopupControl
Return the parent of this Styleable, or null if there is no parent. A PopupControl's styles are based on the popup "owner" which is theownerNode
or, if the ownerNode is not set, the root of theownerWindow's
scene. If the popup has not been shown, both ownerNode and ownerWindow will be null andnull
will be returned. Note that the PopupWindow's scene root is not returned because there is no way to guarantee that the PopupWindow's scene root would properly return the ownerNode or ownerWindow.- Specified by:
getStyleableParent
in interfaceStyleable
- Overrides:
getStyleableParent
in classPopupControl
- Returns:
PopupWindow.getOwnerNode()
,PopupWindow.getOwnerWindow()
, or null.
-