- java.lang.Object
-
- javafx.scene.control.MenuItem
-
- javafx.scene.control.CustomMenuItem
-
- All Implemented Interfaces:
Styleable
,EventTarget
- Direct Known Subclasses:
SeparatorMenuItem
public class CustomMenuItem extends MenuItem
A
MenuItem
that allows for arbitrary nodes to be embedded within it, by assigning aNode
to thecontent
property. CustomMenuItem attempts to make arbitrary nodes appear more natural in the Menu. For example, you automatically get hover highlighting when the user hovers their mouse over the node (or navigates to it using keyboard or other alternate means).A useful property of this class is
hideOnClick
. This boolean specifies whether the CustomMenuItem will be automatically hidden should the user click within the bounds of the CustomMenuItem. This is of particular use when the node inside this CustomMenuItem is a control that requires user interaction, as by setting the hideOnClick property to false means the user can interact with it without the menu hiding. Note that by default hideOnClick is true.An example of how to use CustomMenuItem is shown below.
CustomMenuItem customMenuItem = new CustomMenuItem(new Slider()); customMenuItem.setHideOnClick(false); Menu menu = new Menu("Brightness"); menu.getItems().add(customMenuItem); MenuBar menuBar = new MenuBar(menu);
The slider is horizontally centered when the menu is visible, and interacting with the slider will not result in the menu disappearing.
-
-
Property Summary
Properties Type Property Description ObjectProperty<Node>
content
The node to display within this CustomMenuItem.BooleanProperty
hideOnClick
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.-
Properties inherited from class javafx.scene.control.MenuItem
accelerator, disable, graphic, id, mnemonicParsing, onAction, onMenuValidation, parentMenu, parentPopup, style, text, visible
-
-
Field Summary
-
Fields inherited from class javafx.scene.control.MenuItem
MENU_VALIDATION_EVENT
-
-
Constructor Summary
Constructors Constructor Description CustomMenuItem()
Creates a default CustomMenuItem instance.CustomMenuItem(Node node)
Constructs a CustomMenuItem and initializes its content with the node specified.CustomMenuItem(Node node, boolean hideOnClick)
Constructs a CustomMenuItem and sets the content to the node specified.
-
Method Summary
Modifier and Type Method Description ObjectProperty<Node>
contentProperty()
The node to display within this CustomMenuItem.Node
getContent()
Gets the value of the property content.BooleanProperty
hideOnClickProperty()
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.boolean
isHideOnClick()
Gets the value of the property hideOnClick.void
setContent(Node value)
Sets the value of the property content.void
setHideOnClick(boolean value)
Sets the value of the property hideOnClick.-
Methods inherited from class javafx.scene.control.MenuItem
acceleratorProperty, addEventHandler, buildEventDispatchChain, disableProperty, fire, getAccelerator, getCssMetaData, getGraphic, getId, getOnAction, getOnMenuValidation, getParentMenu, getParentPopup, getProperties, getPseudoClassStates, getStyle, getStyleableNode, getStyleableParent, getStyleClass, getText, getTypeSelector, getUserData, graphicProperty, idProperty, isDisable, isMnemonicParsing, isVisible, mnemonicParsingProperty, onActionProperty, onMenuValidationProperty, parentMenuProperty, parentPopupProperty, removeEventHandler, setAccelerator, setDisable, setGraphic, setId, setMnemonicParsing, setOnAction, setOnMenuValidation, setParentMenu, setParentPopup, setStyle, setText, setUserData, setVisible, styleProperty, textProperty, toString, visibleProperty
-
-
-
-
Property Detail
-
content
public final ObjectProperty<Node> contentProperty
The node to display within this CustomMenuItem.- See Also:
getContent()
,setContent(Node)
-
hideOnClick
public final BooleanProperty hideOnClickProperty
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.- Default value:
- true
- See Also:
isHideOnClick()
,setHideOnClick(boolean)
-
-
Constructor Detail
-
CustomMenuItem
public CustomMenuItem()
Creates a default CustomMenuItem instance.
-
CustomMenuItem
public CustomMenuItem(Node node)
Constructs a CustomMenuItem and initializes its content with the node specified.- Parameters:
node
- to be embedded inside this CustomMenuItem
-
CustomMenuItem
public CustomMenuItem(Node node, boolean hideOnClick)
Constructs a CustomMenuItem and sets the content to the node specified.- Parameters:
node
- to be embedded inside this CustomMenuItemhideOnClick
- if false the menu will not hide when the user interacts with the node.
-
-
Method Detail
-
setContent
public final void setContent(Node value)
Sets the value of the property content.- Property description:
- The node to display within this CustomMenuItem.
-
getContent
public final Node getContent()
Gets the value of the property content.- Property description:
- The node to display within this CustomMenuItem.
-
contentProperty
public final ObjectProperty<Node> contentProperty()
The node to display within this CustomMenuItem.- See Also:
getContent()
,setContent(Node)
-
setHideOnClick
public final void setHideOnClick(boolean value)
Sets the value of the property hideOnClick.- Property description:
- If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.
- Default value:
- true
-
isHideOnClick
public final boolean isHideOnClick()
Gets the value of the property hideOnClick.- Property description:
- If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.
- Default value:
- true
-
hideOnClickProperty
public final BooleanProperty hideOnClickProperty()
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.- Default value:
- true
- See Also:
isHideOnClick()
,setHideOnClick(boolean)
-
-