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

Class MenuButton

  • All Implemented Interfaces:
    StyleableEventTargetSkinnable
    已知直接子类:
    SplitMenuButton


    public class MenuButton
    extends ButtonBase
    MenuButton是一个按钮,当点击或按下时,它将显示一个ContextMenu MenuButton与Menu控件共享一个非常相似的API,只要您设置items ObservableList中应显示的项目,并且有一个Labeled.text属性来指定MenuButton中显示的标签。

    如上所述,像Menu API本身一样,您会发现一个items ObservableList,您可以在其中提供从MenuItem扩展的任何内容 有一些有用的子类MenuItem包括RadioMenuItemCheckMenuItemMenuSeparatorMenuItemCustomMenuItem

    可以将MenuButton设置为在按钮的任意一侧显示其菜单。 这是使用popupSide属性指定的。 默认情况下,菜单出现在按钮下方。 但是,无论popupSide如何指定,如果没有足够的空间, ContextMenu将会被巧妙地重新定位,最有可能是在MenuButton的对面。

    例:

      MenuButton m = new MenuButton("Eats");
     m.getItems().addAll(new MenuItem("Burger"), new MenuItem("Hot Dog")); 

    默认情况下,MenuButton启用助记符分配。

    从以下版本开始:
    JavaFX 2.0
    另请参见:
    MenuItemMenuSplitMenuButton
    • 字段详细信息

      • ON_SHOWING

        public static final EventType<Event> ON_SHOWING
        在MenuButton显示弹出窗口之前,在用户单击或以其他方式与MenuButton进行交互之后调用。
        从以下版本开始:
        JavaFX 8u60
      • ON_SHOWN

        public static final EventType<Event> ON_SHOWN
        在MenuButton显示弹出窗口后调用。
        从以下版本开始:
        JavaFX 8u60
      • ON_HIDING

        public static final EventType<Event> ON_HIDING
        调用的时候,菜单按钮弹出 被隐藏。
        从以下版本开始:
        JavaFX 8u60
      • ON_HIDDEN

        public static final EventType<Event> ON_HIDDEN
        当MenuButton弹出窗口被隐藏时调用。
        从以下版本开始:
        JavaFX 8u60
    • 构造方法详细信息

      • MenuButton

        public MenuButton​(String text)
        创建一个新的空的菜单按钮,给定的文本显示在按钮上。 使用Labeled.setGraphic(Node)getItems()设置内容。
        参数
        text - 要在菜单按钮上显示的文字
      • MenuButton

        public MenuButton​(String text,
                          Node graphic)
        创建一个新的空的菜单按钮,给定的文本和图形显示在按钮上。 使用getItems()设置内容。
        参数
        text - 要在菜单按钮上显示的文字
        graphic - 在菜单按钮上显示的图形
      • MenuButton

        public MenuButton​(String text,
                          Node graphic,
                          MenuItem... items)
        创建一个新的菜单按钮,给定的文本和图形显示在按钮上,并将给定的项目插入到 items列表中。
        参数
        text - 在菜单按钮上显示的文字
        graphic - 在菜单按钮上显示的图形
        items - 要在弹出菜单中显示的项目。
        从以下版本开始:
        JavaFX 8u40
    • 方法详细信息

      • getItems

        public final ObservableList<MenuItem> getItems​()
        在此按钮菜单中显示的项目。 如果在运行时修改了ObservableList,菜单将按预期更新。

        常用控件包括包含MenuItemCheckMenuItemRadioMenuItem ,当然Menu ,其中,如果添加到菜单,将成为一个子菜单。 SeparatorMenuItem是菜单项目ObservableList中另一个常用的节点。

        结果
        此按钮菜单中的菜单项列表
      • isShowing

        public final boolean isShowing​()
        获取显示的属性的值。
        Property description:
        指示ContextMenu当前是否可见。
      • setPopupSide

        public final void setPopupSide​(Side value)
        设置属性popupSide的值。
        Property description:
        表示ContextMenu应该在哪一面打开与MenuButton相关的方面。 菜单项通常在两种情况下垂直布置。 例如,如果菜单按钮位于应用程序左边缘的垂直工具栏中,则可以将popupSide更改为Side.RIGHT ,以使弹出窗口显示在MenuButton的右侧。
        Default value:
        Side.BOTTOM
      • getPopupSide

        public final Side getPopupSide​()
        获取属性popupSide的值。
        Property description:
        表示ContextMenu应该在哪一面打开与MenuButton相关的方面。 菜单项通常在两种情况下垂直布置。 例如,如果菜单按钮位于应用程序左边缘的垂直工具栏中,则可以将popupSide更改为Side.RIGHT ,以使弹出窗口显示在MenuButton的右侧。
        Default value:
        Side.BOTTOM
      • popupSideProperty

        public final ObjectProperty<Side> popupSideProperty​()
        表示ContextMenu应该在哪一面打开与MenuButton相关的方面。 菜单项通常在两种情况下垂直布置。 例如,如果菜单按钮位于应用程序左边缘的垂直工具栏中,则可以将popupSide更改为Side.RIGHT ,以使弹出窗口显示在MenuButton的右侧。
        Default value:
        Side.BOTTOM
        另请参见:
        getPopupSide()setPopupSide(Side)
      • fire

        public void fire​()
        这没有影响。
        Specified by:
        fireButtonBase
      • createDefaultSkin

        protected Skin<?> createDefaultSkin​()
        为此控件创建一个新的默认皮肤实例。 如果没有通过CSS -fx-skin提供皮肤或者在具有setSkin(...)的子类中显式设置,则会调用此控件创建皮肤。
        重写:
        createDefaultSkinControl
        结果
        此控件的默认皮肤的新实例。 如果为null,则控件将没有皮肤,除非由css提供。
      • executeAccessibleAction

        public void executeAccessibleAction​(AccessibleAction action,
                                            Object... parameters)
        该方法由辅助技术调用,请求执行由参数指示的动作。

        此方法通常被子类覆盖,以实现特定角色所需的操作。
        如果未处理特定操作,则必须调用超类实现。

        重写:
        executeAccessibleActionButtonBase
        参数
        action - 执行的动作
        parameters - 可选参数列表
        另请参见:
        AccessibleAction