- All Implemented Interfaces:
Styleable,EventTarget
- Direct Known Subclasses:
SeparatorMenuItem
A MenuItem that allows for arbitrary nodes to be embedded within it,
by assigning a Node to the content 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
PropertiesTypePropertyDescriptionfinal ObjectProperty<Node>The node to display within this CustomMenuItem.final BooleanPropertyIf true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.Properties declared in class javafx.scene.control.MenuItem
accelerator, disable, graphic, id, mnemonicParsing, onAction, onMenuValidation, parentMenu, parentPopup, style, text, visible -
Field Summary
Fields declared in class javafx.scene.control.MenuItem
MENU_VALIDATION_EVENT -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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 TypeMethodDescriptionfinal ObjectProperty<Node>The node to display within this CustomMenuItem.final NodeGets the value of thecontentproperty.final BooleanPropertyIf true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.final booleanGets the value of thehideOnClickproperty.final voidsetContent(Node value) Sets the value of thecontentproperty.final voidsetHideOnClick(boolean value) Sets the value of thehideOnClickproperty.Methods declared in class javafx.scene.control.MenuItem
acceleratorProperty, addEventHandler, buildEventDispatchChain, disableProperty, fire, getAccelerator, getCssMetaData, getGraphic, getId, getOnAction, getOnMenuValidation, getParentMenu, getParentPopup, getProperties, getPseudoClassStates, getStyle, 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, visiblePropertyMethods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
content
The node to display within this CustomMenuItem.- See Also:
-
hideOnClick
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.- Default value:
- true
- See Also:
-
-
Constructor Details
-
CustomMenuItem
public CustomMenuItem()Creates a default CustomMenuItem instance. -
CustomMenuItem
Constructs a CustomMenuItem and initializes its content with the node specified.- Parameters:
node- to be embedded inside this CustomMenuItem
-
CustomMenuItem
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 Details
-
setContent
Sets the value of thecontentproperty.- Property description:
- The node to display within this CustomMenuItem.
- Parameters:
value- the value for thecontentproperty- See Also:
-
getContent
Gets the value of thecontentproperty.- Property description:
- The node to display within this CustomMenuItem.
- Returns:
- the value of the
contentproperty - See Also:
-
contentProperty
The node to display within this CustomMenuItem.- Returns:
- the
contentproperty - See Also:
-
setHideOnClick
public final void setHideOnClick(boolean value) Sets the value of thehideOnClickproperty.- Property description:
- If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.
- Default value:
- true
- Parameters:
value- the value for thehideOnClickproperty- See Also:
-
isHideOnClick
public final boolean isHideOnClick()Gets the value of thehideOnClickproperty.- Property description:
- If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.
- Default value:
- true
- Returns:
- the value of the
hideOnClickproperty - See Also:
-
hideOnClickProperty
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.- Default value:
- true
- Returns:
- the
hideOnClickproperty - See Also:
-