Module  javafx.controls
软件包  javafx.scene.control

Class MenuItem

  • All Implemented Interfaces:
    StyleableEventTarget
    已知直接子类:
    CheckMenuItemCustomMenuItemMenuRadioMenuItem


    @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
    • 字段详细信息

      • MENU_VALIDATION_EVENT

        public static final EventType<Event> MENU_VALIDATION_EVENT

        当调用Menuitem的加速器时调用

        从以下版本开始:
        JavaFX 2.2
    • 构造方法详细信息

      • MenuItem

        public MenuItem​()
        构造一个没有显示文本的MenuItem。
      • MenuItem

        public MenuItem​(String text)
        构造一个MenuItem并设置具有指定文本的显示文本
        参数
        text - 显示文字
        另请参见:
        setText(java.lang.String)
    • 方法详细信息

      • setId

        public final void setId​(String value)
        设置属性id的值。
        Property description:
        该MenuItem的ID。 这个简单的字符串标识符可用于在场景图中查找特定的MenuItem。
      • getId

        public final String getId​()
        获取属性ID的值。
        Specified by:
        getId在接口 Styleable
        Property description:
        该MenuItem的ID。 这个简单的字符串标识符可用于在场景图中查找特定的MenuItem。
        结果
        StyleableStyleable
      • 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​()
        获取属性样式的值。
        Specified by:
        getStyle在接口 Styleable
        Property description:
        与此特定MenuItem相关联的CSS样式的字符串表示形式。 这类似于HTML元素的“样式”属性。 请注意,像HTML样式属性一样,此变量包含样式属性和值,而不包含样式规则的选择器部分。
        结果
        与此特定 Node相关联的CSS样式的字符串表示 Node
      • 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 (即它是上下文菜单,直接连接到一个MenuBarMenuButton ,或任何其他控制的使用Menu内部。
      • getParentMenu

        public final Menu getParentMenu​()
        获取属性parentMenu的值。
        Property description:
        这是Menu在此MenuItem存在。 这个类的一个实例可能没有一个parentMenu - 这意味着这个实例是:
        • 尚未与其parentMenu相关联。
        • A“根” Menu (即它是上下文菜单,直接连接到一个MenuBarMenuButton ,或任何其他控制的使用Menu内部。
      • setParentPopup

        protected final void setParentPopup​(ContextMenu value)
        设置属性parentPopup的值。
        Property description:
        这是ContextMenu在此MenuItem存在。
      • getParentPopup

        public final ContextMenu getParentPopup​()
        获取属性parentPopup的值。
        Property description:
        这是ContextMenu在此MenuItem存在。
      • setText

        public final void setText​(String value)
        设置属性文本的值。
        Property description:
        文字显示在 MenuItem
      • getText

        public final String getText​()
        获取属性文本的值。
        Property description:
        文字显示在 MenuItem
      • setGraphic

        public final void setGraphic​(Node value)
        设置属性图形的值。
        Property description:
        MenuItem的可选图形。 这通常是一个ImageView节点,但是并不要求这样做。
      • getGraphic

        public final Node getGraphic​()
        获取属性图形的值。
        Property description:
        MenuItem的可选图形。 这通常是一个ImageView节点,但没有要求这样做。
      • setOnAction

        public final void setOnAction​(EventHandler<ActionEvent> value)
        设置属性onAction的值。
        Property description:
        每当MenuItem被触发时调用该动作。 这可能是由于用户用鼠标点击按钮,或者通过触摸事件或按键按下,或者如果开发者编程地调用fire()方法。
      • getOnAction

        public final EventHandler<ActionEvent> getOnAction​()
        获取属性onAction的值。
        Property description:
        每当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被禁用。
      • setVisible

        public final void setVisible​(boolean value)
        设置属性的值可见。
        Property description:
        指定此MenuItem是否应呈现为场景图的一部分。
      • isVisible

        public final boolean isVisible​()
        获取属性的值可见。
        Property description:
        指定此MenuItem是否应呈现为场景图的一部分。
      • setAccelerator

        public final void setAccelerator​(KeyCombination value)
        设置属性加速器的值。
        Property description:
        加速器属性使得能够在一个击键中访问关联的动作。 提供快速执行给定动作的方便。
      • getAccelerator

        public final KeyCombination getAccelerator​()
        获取属性加速器的值。
        Property description:
        加速器属性使得能够在一个击键中访问关联的动作。 提供快速执行给定动作的方便。
      • 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。

        另请参见:
        isMnemonicParsing()setMnemonicParsing(boolean)
      • 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​()
        这种Styleable的类型,用于选择器匹配。 这类似于HTML中的“元素”。 CSS Type Selector )。
        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
      • 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())
         
        重写:
        toStringObject
        结果
        对象的字符串表示形式。