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.
MenuItem, Menu
| Modifier and Type | Field and Description |
|---|---|
| private ObjectProperty | content
The node to display within this CustomMenuItem. |
| private static final String | |
| private BooleanProperty | hideOnClick
If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on. |
| Access | Constructor and Description |
|---|---|
| public | |
| public | CustomMenuItem(Node
to be embedded inside this CustomMenuItem node)Constructs a CustomMenuItem and initializes its content with the node specified. |
| public | CustomMenuItem(Node
to be embedded inside this CustomMenuItem node, boolean if false the menu will not hide when the user interacts with the node. hideOnClick)Constructs a CustomMenuItem and sets the content to the node specified. |
| Modifier and Type | Method and Description |
|---|---|
| public final ObjectProperty | |
| public final Node | |
| public final BooleanProperty | |
| public final boolean | |
| public final void | |
| public final void |
| content | back to summary |
|---|---|
| private ObjectProperty<Node> content The node to display within this CustomMenuItem. | |
| DEFAULT_STYLE_CLASS | back to summary |
|---|---|
| private static final String DEFAULT_STYLE_CLASS | |
| hideOnClick | back to summary |
|---|---|
| private BooleanProperty hideOnClick If true, this menu item, and all visible menus, will be hidden when this menu item is clicked on.
| |
| CustomMenuItem | back to summary |
|---|---|
| public CustomMenuItem() Creates a default CustomMenuItem instance. | |
| CustomMenuItem | back to summary |
|---|---|
| public CustomMenuItem(Node node) Constructs a CustomMenuItem and initializes its content with the node specified.
| |
| CustomMenuItem | back to summary |
|---|---|
| public CustomMenuItem(Node node, boolean hideOnClick) Constructs a CustomMenuItem and sets the content to the node specified.
| |
| contentProperty | back to summary |
|---|---|
| public final ObjectProperty | |
| getContent | back to summary |
|---|---|
| public final Node getContent() | |
| hideOnClickProperty | back to summary |
|---|---|
| public final BooleanProperty hideOnClickProperty() | |
| isHideOnClick | back to summary |
|---|---|
| public final boolean isHideOnClick() | |
| setContent | back to summary |
|---|---|
| public final void setContent(Node value) | |
| setHideOnClick | back to summary |
|---|---|
| public final void setHideOnClick(boolean value) | |