- java.lang.Object
-
- javafx.scene.control.MenuItem
-
- All Implemented Interfaces:
-
Styleable
,EventTarget
- 已知直接子类:
-
CheckMenuItem
,CustomMenuItem
,Menu
,RadioMenuItem
@IDProperty("id") public class MenuItem extends Object implements EventTarget, Styleable
MenuItem旨在与
Menu
结合使用,为用户提供选项。 MenuItem作为大量JavaFX菜单API的基类。 它具有显示text
属性,以及可以在其上设置的可选的graphic
节点。accelerator
属性可以在一个击键中访问关联的操作。 此外,与Button
控件一样,通过使用setOnAction(javafx.event.EventHandler<javafx.event.ActionEvent>)
方法,您可以让MenuItem的一个实例执行任何您希望的操作。注意:虽然任何尺寸的图形可以插入到MenuItem中,但大多数应用程序中最常用的大小是16x16像素。 如果您使用JavaFX提供的默认样式,这是建议使用的图形维度。
创建一个MenuItem很简单:
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")));
请参阅
Menu
页面了解如何将MenuItem插入菜单实例。 但简而言之,您可以将MenuItem从上一个示例插入到菜单中:final Menu menu = new Menu("File"); menu.getItems().add(menuItem);
- 从以下版本开始:
- JavaFX 2.0
- 另请参见:
-
Menu
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<KeyCombination>
accelerator
加速器属性使得能够在一个击键中访问关联的动作。BooleanProperty
disable
设置此MenuItem的单独禁用状态。ObjectProperty<Node>
graphic
MenuItem
的可选图形。StringProperty
id
该MenuItem的ID。BooleanProperty
mnemonicParsing
助记符属性启用/禁用文本解析。ObjectProperty<EventHandler<ActionEvent>>
onAction
每当MenuItem被触发时调用该动作。ObjectProperty<EventHandler<Event>>
onMenuValidation
与调用MenuItem的加速器相关联的事件处理程序。ReadOnlyObjectProperty<Menu>
parentMenu
这是Menu
,其中MenuItem
存在。ReadOnlyObjectProperty<ContextMenu>
parentPopup
这是ContextMenu
,其中MenuItem
存在。StringProperty
style
与此特定MenuItem相关联的CSS样式的字符串表示形式。StringProperty
text
文字显示在MenuItem
。BooleanProperty
visible
指定此MenuItem是否应呈现为场景图的一部分。
-
Field Summary
Fields Modifier and Type Field 描述 static EventType<Event>
MENU_VALIDATION_EVENT
当调用Menuitem的加速器时调用
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ObjectProperty<KeyCombination>
acceleratorProperty()
加速器属性使得能够在一个击键中访问关联的动作。<E extends Event>
voidaddEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
在此MenuItem中注册一个事件处理程序。EventDispatchChain
buildEventDispatchChain(EventDispatchChain tail)
为此目标构建事件调度链。BooleanProperty
disableProperty()
设置此MenuItem的单独禁用状态。void
fire()
触发一个新的ActionEvent。KeyCombination
getAccelerator()
获取属性加速器的值。List<CssMetaData<? extends Styleable,?>>
getCssMetaData()
这个样式的CssMetaData。Node
getGraphic()
获取属性图形的值。String
getId()
获取属性ID的值。EventHandler<ActionEvent>
getOnAction()
获取属性onAction的值。EventHandler<Event>
getOnMenuValidation()
获取属性onMenuValidation的值。Menu
getParentMenu()
获取属性parentMenu的值。ContextMenu
getParentPopup()
获取属性parentPopup的值。ObservableMap<Object,Object>
getProperties()
返回此菜单项上可观察到的属性映射,主要由应用程序开发人员使用。ObservableSet<PseudoClass>
getPseudoClassStates()
返回此Styleable的伪类状态。String
getStyle()
获取属性样式的值。Node
getStyleableNode()
返回表示此Styleable对象的Node。Styleable
getStyleableParent()
返回此Styleable的父项,如果没有父项则返回null。ObservableList<String>
getStyleClass()
*公开API * *String
getText()
获取属性文本的值。String
getTypeSelector()
这种Styleable
的类型用于选择器匹配。Object
getUserData()
返回先前设置的Object属性,如果没有使用setUserData(java.lang.Object)
方法设置此属性,则返回null。ObjectProperty<Node>
graphicProperty()
MenuItem
的可选图形。StringProperty
idProperty()
该MenuItem的ID。boolean
isDisable()
获取属性禁用的值。boolean
isMnemonicParsing()
获取属性mnemonicParsing的值。boolean
isVisible()
获取属性的值可见。BooleanProperty
mnemonicParsingProperty()
助记符属性启用/禁用文本解析。ObjectProperty<EventHandler<ActionEvent>>
onActionProperty()
每当MenuItem被触发时调用该动作。ObjectProperty<EventHandler<Event>>
onMenuValidationProperty()
与调用MenuItem的加速器相关联的事件处理程序。ReadOnlyObjectProperty<Menu>
parentMenuProperty()
这是Menu
在此MenuItem
存在。ReadOnlyObjectProperty<ContextMenu>
parentPopupProperty()
这是ContextMenu
在此MenuItem
存在。<E extends Event>
voidremoveEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
从此MenuItem中注销先前注册的事件处理程序。void
setAccelerator(KeyCombination value)
设置属性加速器的值。void
setDisable(boolean value)
设置属性的值禁用。void
setGraphic(Node value)
设置属性图形的值。void
setId(String value)
设置属性id的值。void
setMnemonicParsing(boolean value)
设置属性mnemonicParsing的值。void
setOnAction(EventHandler<ActionEvent> value)
设置属性onAction的值。void
setOnMenuValidation(EventHandler<Event> value)
设置属性onMenuValidation的值。protected void
setParentMenu(Menu value)
设置属性parentMenu的值。protected void
setParentPopup(ContextMenu value)
设置属性parentPopup的值。void
setStyle(String value)
设置属性样式的值。void
setText(String value)
设置属性文本的值。void
setUserData(Object value)
用于设置可以在以后检索的单个Object属性的便利方法。void
setVisible(boolean value)
设置属性的值可见。StringProperty
styleProperty()
与此特定MenuItem相关联的CSS样式的字符串表示形式。StringProperty
textProperty()
文字显示在MenuItem
。String
toString()
返回对象的字符串表示形式。BooleanProperty
visibleProperty()
指定此MenuItem是否应呈现为场景图的一部分。
-
-
-
Property Detail
-
id
public final StringProperty idProperty
该MenuItem的ID。 这个简单的字符串标识符可用于在场景图中查找特定的MenuItem。- 另请参见:
-
getId()
,setId(String)
-
style
public final StringProperty styleProperty
与此特定MenuItem相关联的CSS样式的字符串表示形式。 这类似于HTML元素的“样式”属性。 请注意,像HTML样式属性一样,此变量包含样式属性和值,而不包含样式规则的选择器部分。- 另请参见:
-
getStyle()
,setStyle(String)
-
parentMenu
public final ReadOnlyObjectProperty<Menu> parentMenuProperty
这是Menu
在此MenuItem
存在。 这个类的一个实例可能没有一个parentMenu
- 这意味着这个实例是:- 尚未与其
parentMenu
相关联。 - A“根”
Menu
(即它是上下文菜单,直接连接到一个MenuBar
,MenuButton
,或任何其他控制的使用Menu
内部。
- 另请参见:
-
getParentMenu()
,setParentMenu(Menu)
- 尚未与其
-
parentPopup
public final ReadOnlyObjectProperty<ContextMenu> parentPopupProperty
这是ContextMenu
在此MenuItem
存在。
-
text
public final StringProperty textProperty
文字显示在MenuItem
。- 另请参见:
-
getText()
,setText(String)
-
graphic
public final ObjectProperty<Node> graphicProperty
MenuItem
的可选图形。 这通常是一个ImageView
节点,但是并不要求这样做。- 另请参见:
-
getGraphic()
,setGraphic(Node)
-
onAction
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty
每当MenuItem被触发时调用该动作。 这可能是由于用户使用鼠标点击按钮,或者通过触摸事件或按键,或者如果开发者编程地调用fire()
方法。
-
onMenuValidation
public final ObjectProperty<EventHandler<Event>> onMenuValidationProperty
与调用MenuItem的加速器相关联的事件处理程序。 当按下加速器的按键顺序时,可能会发生这种情况。 当调用onShowing事件处理程序时,也会调用事件处理程序。- 从以下版本开始:
- JavaFX 2.2
- 另请参见:
-
getOnMenuValidation()
,setOnMenuValidation(EventHandler)
-
disable
public final BooleanProperty disableProperty
设置此MenuItem的单独禁用状态。 将disable设置为true将导致此MenuItem被禁用。- 另请参见:
-
isDisable()
,setDisable(boolean)
-
visible
public final BooleanProperty visibleProperty
指定此MenuItem是否应呈现为场景图的一部分。- 另请参见:
-
isVisible()
,setVisible(boolean)
-
accelerator
public final ObjectProperty<KeyCombination> acceleratorProperty
加速器属性使得能够在一个击键中访问关联的动作。 提供快速执行给定动作的方便。
-
mnemonicParsing
public final BooleanProperty mnemonicParsingProperty
助记符属性启用/禁用文本解析。 如果设置为true,那么将解析MenuItem文本,以查看它是否包含助记符解析字符“_”。 当检测到助记符时,密钥组合将根据后续字符确定,并添加助记符。MenuItem的默认值为true。
-
-
构造方法详细信息
-
MenuItem
public MenuItem()
构造一个没有显示文本的MenuItem。
-
MenuItem
public MenuItem(String text)
构造一个MenuItem并设置具有指定文本的显示文本- 参数
-
text
- 显示文字 - 另请参见:
-
setText(java.lang.String)
-
MenuItem
public MenuItem(String text, Node graphic)
构造函数的MenuItem并设置具有指定文本的显示文本,并将图形Node
设置为给定节点。- 参数
-
text
- 显示文字 -
graphic
- 图形节点 - 另请参见:
-
setText(java.lang.String)
,setGraphic(javafx.scene.Node)
-
-
方法详细信息
-
setId
public final void setId(String value)
设置属性id的值。- Property description:
- 该MenuItem的ID。 这个简单的字符串标识符可用于在场景图中查找特定的MenuItem。
-
getId
public final String getId()
获取属性ID的值。
-
idProperty
public final StringProperty idProperty()
该MenuItem的ID。 这个简单的字符串标识符可用于在场景图中查找特定的MenuItem。- 另请参见:
-
getId()
,setId(String)
-
setStyle
public final void setStyle(String value)
设置属性样式的值。- Property description:
- 与此特定MenuItem相关联的CSS样式的字符串表示形式。 这类似于HTML元素的“样式”属性。 请注意,像HTML样式属性一样,此变量包含样式属性和值,而不包含样式规则的选择器部分。
-
getStyle
public final String getStyle()
获取属性样式的值。
-
styleProperty
public final StringProperty styleProperty()
与此特定MenuItem相关联的CSS样式的字符串表示形式。 这类似于HTML元素的“样式”属性。 请注意,像HTML样式属性一样,此变量包含样式属性和值,而不包含样式规则的选择器部分。- 另请参见:
-
getStyle()
,setStyle(String)
-
setParentMenu
protected final void setParentMenu(Menu value)
设置属性parentMenu的值。- Property description:
-
这是
Menu
在此MenuItem
存在。 这个类的一个实例可能没有一个parentMenu
- 这意味着这个实例是:- 尚未与其
parentMenu
相关联。 - A“根”
Menu
(即它是上下文菜单,直接连接到一个MenuBar
,MenuButton
,或任何其他控制的使用Menu
内部。
- 尚未与其
-
getParentMenu
public final Menu getParentMenu()
获取属性parentMenu的值。- Property description:
-
这是
Menu
在此MenuItem
存在。 这个类的一个实例可能没有一个parentMenu
- 这意味着这个实例是:- 尚未与其
parentMenu
相关联。 - A“根”
Menu
(即它是上下文菜单,直接连接到一个MenuBar
,MenuButton
,或任何其他控制的使用Menu
内部。
- 尚未与其
-
parentMenuProperty
public final ReadOnlyObjectProperty<Menu> parentMenuProperty()
这是Menu
,其中MenuItem
存在。 这个类的一个实例可能没有一个parentMenu
- 这意味着这个实例是:- 尚未与其
parentMenu
相关联。 - A“根”
Menu
(即它是上下文菜单,直接连接到一个MenuBar
,MenuButton
,或任何其他控制的使用Menu
内部。
- 另请参见:
-
getParentMenu()
,setParentMenu(Menu)
- 尚未与其
-
setParentPopup
protected final void setParentPopup(ContextMenu value)
设置属性parentPopup的值。- Property description:
-
这是
ContextMenu
在此MenuItem
存在。
-
getParentPopup
public final ContextMenu getParentPopup()
获取属性parentPopup的值。- Property description:
-
这是
ContextMenu
在此MenuItem
存在。
-
parentPopupProperty
public final ReadOnlyObjectProperty<ContextMenu> parentPopupProperty()
这是ContextMenu
在此MenuItem
存在。
-
setText
public final void setText(String value)
设置属性文本的值。- Property description:
-
文字显示在
MenuItem
。
-
getText
public final String getText()
获取属性文本的值。- Property description:
-
文字显示在
MenuItem
。
-
textProperty
public final StringProperty textProperty()
文字显示在MenuItem
。- 另请参见:
-
getText()
,setText(String)
-
setGraphic
public final void setGraphic(Node value)
设置属性图形的值。- Property description:
-
MenuItem
的可选图形。 这通常是一个ImageView
节点,但是并不要求这样做。
-
getGraphic
public final Node getGraphic()
获取属性图形的值。- Property description:
-
MenuItem
的可选图形。 这通常是一个ImageView
节点,但没有要求这样做。
-
graphicProperty
public final ObjectProperty<Node> graphicProperty()
MenuItem
的可选图形。 这通常是一个ImageView
节点,但是并不要求这样做。- 另请参见:
-
getGraphic()
,setGraphic(Node)
-
setOnAction
public final void setOnAction(EventHandler<ActionEvent> value)
设置属性onAction的值。- Property description:
-
每当MenuItem被触发时调用该动作。
这可能是由于用户用鼠标点击按钮,或者通过触摸事件或按键按下,或者如果开发者编程地调用
fire()
方法。
-
getOnAction
public final EventHandler<ActionEvent> getOnAction()
获取属性onAction的值。- Property description:
-
每当MenuItem被触发时调用该动作。
这可能是由于用户用鼠标点击按钮,或者通过触摸事件或按键,或者如果开发者编程地调用
fire()
方法。
-
onActionProperty
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty()
每当MenuItem被触发时调用该动作。 这可能是由于用户用鼠标点击按钮,或者通过触摸事件或按键,或者如果开发者编程地调用fire()
方法。
-
setOnMenuValidation
public final void setOnMenuValidation(EventHandler<Event> value)
设置属性onMenuValidation的值。- Property description:
- 与调用MenuItem的加速器相关联的事件处理程序。 当按下加速器的按键顺序时,可能会发生这种情况。 当调用onShowing事件处理程序时,也会调用事件处理程序。
- 从以下版本开始:
- JavaFX 2.2
-
getOnMenuValidation
public final EventHandler<Event> getOnMenuValidation()
获取属性onMenuValidation的值。- Property description:
- 与调用MenuItem的加速器相关联的事件处理程序。 当按下加速器的按键顺序时,可能会发生这种情况。 当调用onShowing事件处理程序时,也会调用事件处理程序。
- 从以下版本开始:
- JavaFX 2.2
-
onMenuValidationProperty
public final ObjectProperty<EventHandler<Event>> onMenuValidationProperty()
与调用MenuItem的加速器相关联的事件处理程序。 当按下加速器的按键顺序时,可能会发生这种情况。 当调用onShowing事件处理程序时,也会调用事件处理程序。- 从以下版本开始:
- JavaFX 2.2
- 另请参见:
-
getOnMenuValidation()
,setOnMenuValidation(EventHandler)
-
setDisable
public final void setDisable(boolean value)
设置属性的值禁用。- Property description:
- 设置此MenuItem的单独禁用状态。 将disable设置为true将导致此MenuItem被禁用。
-
isDisable
public final boolean isDisable()
获取属性禁用的值。- Property description:
- 设置此MenuItem的单独禁用状态。 将disable设置为true将导致此MenuItem被禁用。
-
disableProperty
public final BooleanProperty disableProperty()
设置此MenuItem的单独禁用状态。 将disable设置为true将导致此MenuItem被禁用。- 另请参见:
-
isDisable()
,setDisable(boolean)
-
setVisible
public final void setVisible(boolean value)
设置属性的值可见。- Property description:
- 指定此MenuItem是否应呈现为场景图的一部分。
-
isVisible
public final boolean isVisible()
获取属性的值可见。- Property description:
- 指定此MenuItem是否应呈现为场景图的一部分。
-
visibleProperty
public final BooleanProperty visibleProperty()
指定此MenuItem是否应呈现为场景图的一部分。- 另请参见:
-
isVisible()
,setVisible(boolean)
-
setAccelerator
public final void setAccelerator(KeyCombination value)
设置属性加速器的值。- Property description:
- 加速器属性使得能够在一个击键中访问关联的动作。 提供快速执行给定动作的方便。
-
getAccelerator
public final KeyCombination getAccelerator()
获取属性加速器的值。- Property description:
- 加速器属性使得能够在一个击键中访问关联的动作。 提供快速执行给定动作的方便。
-
acceleratorProperty
public final ObjectProperty<KeyCombination> acceleratorProperty()
加速器属性使得能够在一个击键中访问关联的动作。 提供快速执行给定动作的方便。
-
setMnemonicParsing
public final void setMnemonicParsing(boolean value)
设置属性mnemonicParsing的值。- Property description:
-
助记符属性启用/禁用文本解析。
如果设置为true,那么将解析MenuItem文本,以查看它是否包含助记符解析字符“_”。
当检测到助记符时,密钥组合将根据后续字符确定,并添加助记符。
MenuItem的默认值为true。
-
isMnemonicParsing
public final boolean isMnemonicParsing()
获取属性mnemonicParsing的值。- Property description:
-
助记符属性启用/禁用文本解析。
如果设置为true,那么将解析MenuItem文本,以查看它是否包含助记符解析字符“_”。
当检测到助记符时,密钥组合将根据后续字符确定,并添加助记符。
MenuItem的默认值为true。
-
mnemonicParsingProperty
public final BooleanProperty mnemonicParsingProperty()
助记符属性启用/禁用文本解析。 如果设置为true,那么将解析MenuItem文本,以查看它是否包含助记符解析字符“_”。 当检测到助记符时,密钥组合将根据后续字符确定,并添加助记符。MenuItem的默认值为true。
-
getStyleClass
public ObservableList<String> getStyleClass()
*公开API * *- Specified by:
-
getStyleClass
在接口Styleable
- 结果
- 可用于逻辑组合节点的字符串标识符列表,专门用于外部样式引擎
- 另请参见:
- CSS3 class selectors
-
fire
public void fire()
触发一个新的ActionEvent。
-
addEventHandler
public <E extends Event> void addEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
在此MenuItem中注册一个事件处理程序。 当菜单项在事件传送的冒泡阶段期间接收到指定类型的Event
时,调用处理程序。- 参数类型
-
E
- 处理程序的特定事件类 - 参数
-
eventType
- 由处理程序接收的事件的类型 -
eventHandler
- 要注册的处理程序 - 异常
-
NullPointerException
- 如果事件类型或处理程序为空
-
removeEventHandler
public <E extends Event> void removeEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
从此MenuItem中注销先前注册的事件处理程序。 一个处理程序可能已被注册用于不同的事件类型,因此调用者需要指定特定的事件类型,从中注销处理程序。- 参数类型
-
E
- 处理程序的特定事件类 - 参数
-
eventType
- 要注销的事件类型 -
eventHandler
- 要注销的处理程序 - 异常
-
NullPointerException
- 如果事件类型或处理程序为空
-
buildEventDispatchChain
public EventDispatchChain buildEventDispatchChain(EventDispatchChain tail)
为此目标构建事件调度链。 事件调度链包含可能对处理针对EventTarget
的事件感兴趣的事件调度EventTarget
。 此事件目标不会自动添加到链中,因此如果要处理事件,则需要为链接添加一个EventDispatcher
。在事件目标是某些层次结构的一部分的情况下,它的链通常是从从层次结构的根被收集到事件目标的事件分派器构建的。
事件调度链是通过修改提供的初始事件调度链来构建的。 返回的链应该在其末端具有初始链,所以调度员应该放在初始链上。
调用者不应该假定初始链条保持不变,也不会返回值引用不同的链。
- Specified by:
-
buildEventDispatchChain
在接口EventTarget
- 参数
-
tail
- 建立起来的初始链 - 结果
- 此目标的结果事件调度链
-
getUserData
public Object getUserData()
返回先前设置的Object属性,如果没有使用setUserData(java.lang.Object)
方法设置此属性,则返回null。- 结果
- 先前设置的对象,如果没有设置属性或设置为null,则为null。
-
setUserData
public void setUserData(Object value)
用于设置可以在以后检索的单个Object属性的便利方法。 这在功能上等同于调用getProperties()。put(Object key,Object value)方法。 这可以稍后通过调用Node.getUserData()
来检索。- 参数
-
value
- 要存储的值 - 以后可以通过调用Node.getUserData()
检索。
-
getProperties
public ObservableMap<Object,Object> getProperties()
返回此菜单项上可观察到的属性映射,主要由应用程序开发人员使用。- 结果
- 此菜单项上的属性的可观察地图主要由应用程序开发人员使用
-
getTypeSelector
public String getTypeSelector()
- Specified by:
-
getTypeSelector
在接口Styleable
- 结果
- “菜单项”
- 从以下版本开始:
- JavaFX 8.0
-
getStyleableParent
public Styleable getStyleableParent()
返回此Styleable的父项,如果没有父项则返回null。- Specified by:
-
getStyleableParent
在接口Styleable
- 结果
-
getParentMenu()
或getParentPopup()
如果parentMenu
为空 - 从以下版本开始:
- JavaFX 8.0
-
getPseudoClassStates
public final ObservableSet<PseudoClass> getPseudoClassStates()
返回此Styleable的伪类状态。 CSS假定此集是只读的。- Specified by:
-
getPseudoClassStates
在接口Styleable
- 结果
- 伪类状态
- 从以下版本开始:
- JavaFX 8.0
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
描述从接口Styleable
复制这个样式的CssMetaData。 这可以作为不可修改的列表返回。- Specified by:
-
getCssMetaData
在接口Styleable
- 结果
- CssMetaData
-
getStyleableNode
public Node getStyleableNode()
返回表示此Styleable对象的Node。 在Styleable本身不是Node的情况下,应该覆盖此方法,以便它可以可选地返回其本身的相关根节点表示。 默认情况下,此方法返回null,这可能意味着Styleable本身是一个Node,如果不是这种情况,则Styleable在请求时没有可用的节点表示。- Specified by:
-
getStyleableNode
在接口Styleable
- 结果
- 表示此Styleable对象的节点
-
toString
public String toString()
描述从类复制:Object
返回对象的字符串表示形式。 一般来说,toString
方法返回一个字符串“toString
代表”这个对象。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该
toString
类方法Object
返回一个由类的名称,其中所述对象是其实例,该符号字符`的字符串@
”,并且对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
-
-