@IDProperty(value="id") public class MenuItem extends java.lang.Object implements EventTarget, Styleable
MenuItem is intended to be used in conjunction with Menu
to provide
options to users. MenuItem serves as the base class for the bulk of JavaFX menus
API.
It has a display text
property, as well as an optional graphic
node
that can be set on it.
The accelerator
property enables accessing the
associated action in one keystroke. Also, as with the Button
control,
by using the setOnAction(javafx.event.EventHandler<javafx.event.ActionEvent>)
method, you can have an instance of MenuItem
perform any action you wish.
Note: Whilst any size of graphic can be inserted into a MenuItem, the most commonly used size in most applications is 16x16 pixels. This is the recommended graphic dimension to use if you're using the default style provided by JavaFX.
To create a MenuItem is simple:
MenuItem menuItem = new MenuItem("Open");
menuItem.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
System.out.println("Opening Database Connection...");
}
});
menuItem.setGraphic(new ImageView(new Image("flower.png")));
Refer to the Menu
page to learn how to insert MenuItem into a menu
instance. Briefly however, you can insert the MenuItem from the previous
example into a Menu as such:
final Menu menu = new Menu("File");
menu.getItems().add(menuItem);
Menu
Modifier and Type | Field and Description |
---|---|
private ObjectProperty<KeyCombination> |
accelerator
The accelerator property enables accessing the associated action in one keystroke.
|
private static java.lang.String |
DEFAULT_STYLE_CLASS
*
Stylesheet Handling *
*
|
private BooleanProperty |
disable
Sets the individual disabled state of this MenuItem.
|
(package private) EventHandlerManager |
eventHandlerManager |
private ObjectProperty<Node> |
graphic
An optional graphic for the
MenuItem . |
private StringProperty |
id
The id of this MenuItem.
|
static EventType<Event> |
MENU_VALIDATION_EVENT
Called when a accelerator for the Menuitem is invoked
|
private BooleanProperty |
mnemonicParsing
MnemonicParsing property to enable/disable text parsing.
|
private ObjectProperty<EventHandler<ActionEvent>> |
onAction
The action, which is invoked whenever the MenuItem is fired.
|
private ObjectProperty<EventHandler<Event>> |
onMenuValidation
The event handler that is associated with invocation of an accelerator for a MenuItem.
|
private ReadOnlyObjectWrapper<Menu> |
parentMenu
This is the
Menu in which this MenuItem exists. |
private ReadOnlyObjectWrapper<ContextMenu> |
parentPopup
This is the
ContextMenu in which this MenuItem exists. |
private ObservableMap<java.lang.Object,java.lang.Object> |
properties |
private StringProperty |
style
A string representation of the CSS style associated with this specific MenuItem.
|
private ObservableList<java.lang.String> |
styleClass
*
Instance Variables *
*
|
private StringProperty |
text
The text to display in the
MenuItem . |
private java.lang.Object |
userData |
private BooleanProperty |
visible
Specifies whether this MenuItem should be rendered as part of the scene graph.
|
Constructor and Description |
---|
MenuItem()
Constructs a MenuItem with no display text.
|
MenuItem(java.lang.String text)
Constructs a MenuItem and sets the display text with the specified text
|
MenuItem(java.lang.String text,
Node graphic)
Constructor s MenuItem and sets the display text with the specified text
and sets the graphic
Node to the given node. |
Modifier and Type | Method and Description |
---|---|
ObjectProperty<KeyCombination> |
acceleratorProperty() |
<E extends Event> |
addEventHandler(EventType<E> eventType,
EventHandler<E> eventHandler)
Registers an event handler to this MenuItem.
|
EventDispatchChain |
buildEventDispatchChain(EventDispatchChain tail)
Construct an event dispatch chain for this target.
|
BooleanProperty |
disableProperty() |
void |
fire()
Fires a new ActionEvent.
|
KeyCombination |
getAccelerator() |
java.util.List<CssMetaData<? extends Styleable,?>> |
getCssMetaData()
The CssMetaData of this Styleable.
|
Node |
getGraphic() |
java.lang.String |
getId()
The id of this
Styleable . |
EventHandler<ActionEvent> |
getOnAction() |
EventHandler<Event> |
getOnMenuValidation() |
Menu |
getParentMenu() |
ContextMenu |
getParentPopup() |
ObservableMap<java.lang.Object,java.lang.Object> |
getProperties()
Returns an observable map of properties on this menu item for use primarily
by application developers.
|
ObservableSet<PseudoClass> |
getPseudoClassStates()
Return the pseudo-class state of this Styleable.
|
java.lang.String |
getStyle()
A string representation of the CSS style associated with this
specific
Node . |
Styleable |
getStyleableParent()
Return the parent of this Styleable, or null if there is no parent.
|
ObservableList<java.lang.String> |
getStyleClass()
*
Public API *
*
|
java.lang.String |
getText() |
java.lang.String |
getTypeSelector()
The type of this
Styleable that is to be used in selector matching. |
java.lang.Object |
getUserData()
Returns a previously set Object property, or null if no such property
has been set using the
setUserData(java.lang.Object) method. |
ObjectProperty<Node> |
graphicProperty() |
StringProperty |
idProperty() |
Node |
impl_styleableGetNode()
Deprecated.
This is an internal API that is not intended for use and will be removed in the next version
|
boolean |
isDisable() |
boolean |
isMnemonicParsing() |
boolean |
isVisible() |
BooleanProperty |
mnemonicParsingProperty() |
ObjectProperty<EventHandler<ActionEvent>> |
onActionProperty() |
ObjectProperty<EventHandler<Event>> |
onMenuValidationProperty() |
ReadOnlyObjectProperty<Menu> |
parentMenuProperty() |
private ReadOnlyObjectWrapper<Menu> |
parentMenuPropertyImpl() |
ReadOnlyObjectProperty<ContextMenu> |
parentPopupProperty() |
private ReadOnlyObjectWrapper<ContextMenu> |
parentPopupPropertyImpl() |
<E extends Event> |
removeEventHandler(EventType<E> eventType,
EventHandler<E> eventHandler)
Unregisters a previously registered event handler from this MenuItem.
|
void |
setAccelerator(KeyCombination value) |
void |
setDisable(boolean value) |
void |
setGraphic(Node value) |
void |
setId(java.lang.String value) |
void |
setMnemonicParsing(boolean value) |
void |
setOnAction(EventHandler<ActionEvent> value) |
void |
setOnMenuValidation(EventHandler<Event> value) |
protected void |
setParentMenu(Menu value) |
protected void |
setParentPopup(ContextMenu value) |
void |
setStyle(java.lang.String value) |
void |
setText(java.lang.String value) |
void |
setUserData(java.lang.Object value)
Convenience method for setting a single Object property that can be
retrieved at a later date.
|
void |
setVisible(boolean value) |
StringProperty |
styleProperty() |
StringProperty |
textProperty() |
java.lang.String |
toString() |
BooleanProperty |
visibleProperty() |
private final ObservableList<java.lang.String> styleClass
final EventHandlerManager eventHandlerManager
private java.lang.Object userData
private ObservableMap<java.lang.Object,java.lang.Object> properties
private StringProperty id
private StringProperty style
private ReadOnlyObjectWrapper<Menu> parentMenu
Menu
in which this MenuItem
exists. It is
possible for an instance of this class to not have a parentMenu
-
this means that this instance is either:
parentMenu
.
Menu
(i.e. it is a context menu, attached directly to a
MenuBar
, MenuButton
, or any of the other controls that use
Menu
internally.
private ReadOnlyObjectWrapper<ContextMenu> parentPopup
ContextMenu
in which this MenuItem
exists.private StringProperty text
MenuItem
.private ObjectProperty<Node> graphic
MenuItem
. This will normally be
an ImageView
node, but there is no requirement for this to be
the case.private ObjectProperty<EventHandler<ActionEvent>> onAction
fire()
method.public static final EventType<Event> MENU_VALIDATION_EVENT
Called when a accelerator for the Menuitem is invoked
private ObjectProperty<EventHandler<Event>> onMenuValidation
private BooleanProperty disable
private BooleanProperty visible
private ObjectProperty<KeyCombination> accelerator
private BooleanProperty mnemonicParsing
The default value for MenuItem is true.
private static final java.lang.String DEFAULT_STYLE_CLASS
public MenuItem()
public MenuItem(java.lang.String text)
setText(java.lang.String)
public final void setId(java.lang.String value)
public final java.lang.String getId()
Styleable
Styleable
. This simple string identifier is useful for
finding a specific Node within the scene graph. While the id of a Node
should be unique within the scene graph, this uniqueness is not enforced.
This is analogous to the "id" attribute on an HTML element
(CSS ID Specification).
For example, if a Node is given the id of "myId", then the lookup method can
be used to find this node as follows: scene.lookup("#myId");
.
public final StringProperty idProperty()
public final void setStyle(java.lang.String value)
public final java.lang.String getStyle()
Styleable
Node
. This is analogous to the "style" attribute of an
HTML element. Note that, like the HTML style attribute, this
variable contains style properties and values and not the
selector portion of a style rule.public final StringProperty styleProperty()
protected final void setParentMenu(Menu value)
public final Menu getParentMenu()
public final ReadOnlyObjectProperty<Menu> parentMenuProperty()
private ReadOnlyObjectWrapper<Menu> parentMenuPropertyImpl()
protected final void setParentPopup(ContextMenu value)
public final ContextMenu getParentPopup()
public final ReadOnlyObjectProperty<ContextMenu> parentPopupProperty()
private ReadOnlyObjectWrapper<ContextMenu> parentPopupPropertyImpl()
public final void setText(java.lang.String value)
public final java.lang.String getText()
public final StringProperty textProperty()
public final void setGraphic(Node value)
public final Node getGraphic()
public final ObjectProperty<Node> graphicProperty()
public final void setOnAction(EventHandler<ActionEvent> value)
public final EventHandler<ActionEvent> getOnAction()
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty()
public final void setOnMenuValidation(EventHandler<Event> value)
public final EventHandler<Event> getOnMenuValidation()
public final ObjectProperty<EventHandler<Event>> onMenuValidationProperty()
public final void setDisable(boolean value)
public final boolean isDisable()
public final BooleanProperty disableProperty()
public final void setVisible(boolean value)
public final boolean isVisible()
public final BooleanProperty visibleProperty()
public final void setAccelerator(KeyCombination value)
public final KeyCombination getAccelerator()
public final ObjectProperty<KeyCombination> acceleratorProperty()
public final void setMnemonicParsing(boolean value)
public final boolean isMnemonicParsing()
public final BooleanProperty mnemonicParsingProperty()
public ObservableList<java.lang.String> getStyleClass()
getStyleClass
in interface Styleable
public void fire()
public <E extends Event> void addEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
Event
of the specified type during the bubbling
phase of event delivery.E
- the specific event class of the handlereventType
- the type of the events to receive by the handlereventHandler
- the handler to registerjava.lang.NullPointerException
- if the event type or handler is nullpublic <E extends Event> void removeEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
E
- the specific event class of the handlereventType
- the event type from which to unregistereventHandler
- the handler to unregisterjava.lang.NullPointerException
- if the event type or handler is nullpublic EventDispatchChain buildEventDispatchChain(EventDispatchChain tail)
EventTarget
. This event target is
not automatically added to the chain, so if it wants to process events,
it needs to add an EventDispatcher
for itself to the chain.
In the case the event target is part of some hierarchy, the chain for it is usually built from event dispatchers collected from the root of the hierarchy to the event target.
The event dispatch chain is constructed by modifications to the provided initial event dispatch chain. The returned chain should have the initial chain at its end so the dispatchers should be prepended to the initial chain.
The caller shouldn't assume that the initial chain remains unchanged nor that the returned value will reference a different chain.
buildEventDispatchChain
in interface EventTarget
tail
- the initial chain to build frompublic java.lang.Object getUserData()
setUserData(java.lang.Object)
method.public void setUserData(java.lang.Object value)
Node.getUserData()
.value
- The value to be stored - this can later be retrieved by calling
Node.getUserData()
.public ObservableMap<java.lang.Object,java.lang.Object> getProperties()
public java.lang.String getTypeSelector()
Styleable
that is to be used in selector matching.
This is analogous to an "element" in HTML.
(CSS Type Selector).getTypeSelector
in interface Styleable
public Styleable getStyleableParent()
getStyleableParent
in interface Styleable
getParentMenu()
, or getParentPopup()
if parentMenu
is nullpublic final ObservableSet<PseudoClass> getPseudoClassStates()
getPseudoClassStates
in interface Styleable
public java.util.List<CssMetaData<? extends Styleable,?>> getCssMetaData()
Styleable
getCssMetaData
in interface Styleable
@Deprecated public Node impl_styleableGetNode()
public java.lang.String toString()
toString
in class java.lang.Object