- java.lang.Object
-
- javafx.scene.control.MenuItem
-
- javafx.scene.control.Menu
-
- All Implemented Interfaces:
-
Styleable
,EventTarget
@DefaultProperty("items") public class Menu extends MenuItem
可触发的项目的弹出菜单,仅根据请求向用户显示。 当菜单可见时,在大多数情况下,用户可以在菜单返回到其隐藏状态之前选择一个菜单项。 这意味着菜单是放置重要功能的好地方,这些功能不一定需要在任何时候都可见到用户。
菜单通常放置在
MenuBar
中 ,或作为另一个菜单的子菜单。 如果用户在用户界面的特定区域右键点击时提供上下文菜单,则这是使用错误的控件。 这是因为当将菜单添加到场景图中时,它具有将导致显示在屏幕上的视觉表示。 相反,在这种情况下应该使用ContextMenu
。创建菜单并将其插入到MenuBar中是很容易的,如下所示:
final Menu menu1 = new Menu("File"); MenuBar menuBar = new MenuBar(); menuBar.getMenus().add(menu1);
菜单是
MenuItem
的子类,这意味着它可以插入到菜单的items
ObservableList中,从而创建一个子菜单:MenuItem menu12 = new MenuItem("Open"); menu1.getItems().add(menu12);
ObservableList允许任何项目
MenuItem
类型将被插入,包括它的子类Menu
,MenuItem
,RadioMenuItem
,CheckMenuItem
,CustomMenuItem
和SeparatorMenuItem
。 为了在菜单中插入任意的Node
,可以使用CustomMenuItem。 这个一般规则的一个例外是SeparatorMenuItem
可以用于插入分隔符。
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<EventHandler<Event>>
onHidden
紧随ContextMenu
被隐藏。ObjectProperty<EventHandler<Event>>
onHiding
被称为在ContextMenu
之前被隐藏。ObjectProperty<EventHandler<Event>>
onShowing
在ContextMenu
被显示之前,即使菜单没有显示项目。ObjectProperty<EventHandler<Event>>
onShown
在ContextMenu
之后刚刚显示。ReadOnlyBooleanProperty
showing
指示ContextMenu
当前是否可见。-
Properties inherited from class javafx.scene.control.MenuItem
accelerator, disable, graphic, id, mnemonicParsing, onAction, onMenuValidation, parentMenu, parentPopup, style, text, visible
-
-
Field Summary
Fields Modifier and Type Field 描述 static EventType<Event>
ON_HIDDEN
当此菜单的contextMenu隐藏时调用。static EventType<Event>
ON_HIDING
当该菜单的contextMenu 将被隐藏时调用。static EventType<Event>
ON_SHOWING
当此菜单的contextMenu 将被显示时调用。static EventType<Event>
ON_SHOWN
当此菜单的contextMenu显示时调用。-
Fields inherited from class javafx.scene.control.MenuItem
MENU_VALIDATION_EVENT
-
-
方法摘要
-
Methods inherited from class javafx.scene.control.MenuItem
acceleratorProperty, disableProperty, fire, getAccelerator, getCssMetaData, getGraphic, getId, getOnAction, getOnMenuValidation, getParentMenu, getParentPopup, getProperties, getPseudoClassStates, getStyle, getStyleableNode, getStyleableParent, getStyleClass, getText, getTypeSelector, getUserData, graphicProperty, idProperty, isDisable, isMnemonicParsing, isVisible, mnemonicParsingProperty, onActionProperty, onMenuValidationProperty, parentMenuProperty, parentPopupProperty, setAccelerator, setDisable, setGraphic, setId, setMnemonicParsing, setOnAction, setOnMenuValidation, setParentMenu, setParentPopup, setStyle, setText, setUserData, setVisible, styleProperty, textProperty, toString, visibleProperty
-
-
-
-
Property Detail
-
showing
public final ReadOnlyBooleanProperty showingProperty
指示ContextMenu
当前是否可见。- Default value:
- 假
- 另请参见:
-
isShowing()
-
onShowing
public final ObjectProperty<EventHandler<Event>> onShowingProperty
在ContextMenu
被显示之前,即使菜单没有显示项目。 但是请注意,如果菜单没有有效的锚点节点,则不会调用此方法。
-
onShown
public final ObjectProperty<EventHandler<Event>> onShownProperty
紧接ContextMenu
后显示。- 另请参见:
-
getOnShown()
,setOnShown(EventHandler)
-
onHiding
public final ObjectProperty<EventHandler<Event>> onHidingProperty
在ContextMenu
被隐藏之前叫。
-
onHidden
public final ObjectProperty<EventHandler<Event>> onHiddenProperty
在ContextMenu
被隐藏之后调用。
-
-
字段详细信息
-
ON_SHOWING
public static final EventType<Event> ON_SHOWING
当此菜单的contextMenu 将被显示时调用。 但是如果contextMenu为空,则不会被调用。
-
ON_SHOWN
public static final EventType<Event> ON_SHOWN
当此菜单的contextMenu显示时调用。 但是如果contextMenu为空,则不会被调用。
-
ON_HIDING
public static final EventType<Event> ON_HIDING
当该菜单的contextMenu 将被隐藏时调用。 但是如果contextMenu为空,则不会被调用。
-
-
方法详细信息
-
isShowing
public final boolean isShowing()
获取显示的属性的值。- Property description:
-
指示
ContextMenu
当前是否可见。 - Default value:
- 假
-
showingProperty
public final ReadOnlyBooleanProperty showingProperty()
指示ContextMenu
当前是否可见。- Default value:
- 假
- 另请参见:
-
isShowing()
-
onShowingProperty
public final ObjectProperty<EventHandler<Event>> onShowingProperty()
在ContextMenu
被显示之前,即使菜单没有显示项目。 但是请注意,如果菜单没有有效的锚点节点,则不会调用此方法。
-
setOnShowing
public final void setOnShowing(EventHandler<Event> value)
设置属性onShowing的值。- Property description:
-
在
ContextMenu
被显示之前,即使菜单没有显示项目。 但是请注意,如果菜单没有有效的锚点节点,则不会调用此方法。
-
getOnShowing
public final EventHandler<Event> getOnShowing()
获取属性onShowing的值。- Property description:
-
在
ContextMenu
被显示之前,即使菜单没有显示项目。 但是请注意,如果菜单没有有效的锚点节点,则不会调用此方法。
-
onShownProperty
public final ObjectProperty<EventHandler<Event>> onShownProperty()
在ContextMenu
之后就被称为。- 另请参见:
-
getOnShown()
,setOnShown(EventHandler)
-
setOnShown
public final void setOnShown(EventHandler<Event> value)
设置属性onShown的值。- Property description:
-
在
ContextMenu
之后刚刚显示。
-
getOnShown
public final EventHandler<Event> getOnShown()
获取onShown属性的值。- Property description:
-
在
ContextMenu
后显示。
-
onHidingProperty
public final ObjectProperty<EventHandler<Event>> onHidingProperty()
称之为ContextMenu
之前被隐藏。
-
setOnHiding
public final void setOnHiding(EventHandler<Event> value)
设置属性onHiding的值。- Property description:
-
称之为
ContextMenu
之前被隐藏。
-
getOnHiding
public final EventHandler<Event> getOnHiding()
获取属性onHiding的值。- Property description:
-
被称为在
ContextMenu
被隐藏之前。
-
onHiddenProperty
public final ObjectProperty<EventHandler<Event>> onHiddenProperty()
在ContextMenu
之后刚刚被隐藏。
-
setOnHidden
public final void setOnHidden(EventHandler<Event> value)
设置属性onHidden的值。- Property description:
-
在
ContextMenu
之后刚刚被隐藏。
-
getOnHidden
public final EventHandler<Event> getOnHidden()
获取属性onHidden的值。- Property description:
-
紧接
ContextMenu
后被称为隐藏。
-
getItems
public final ObservableList<MenuItem> getItems()
在此菜单中显示的项目。 如果在运行时修改了ObservableList,菜单将按预期更新。- 结果
- 项目清单
-
show
public void show()
如果菜单未被禁用,并且ContextMenu
尚未显示,则会导致显示ContextMenu
。
-
hide
public void hide()
隐藏ContextMenu
,如果它以前显示,和任何显示子菜单。 如果此菜单未显示,则调用此功能不起作用。
-
addEventHandler
public <E extends Event> void addEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
在此MenuItem中注册一个事件处理程序。 当菜单项在事件传送的冒泡阶段期间接收到指定类型的Event
时,调用处理程序。- 重写:
-
addEventHandler
在MenuItem
- 参数类型
-
E
- 处理程序的特定事件类 - 参数
-
eventType
- 由处理程序接收的事件的类型 -
eventHandler
- 要注册的处理程序
-
removeEventHandler
public <E extends Event> void removeEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
从此MenuItem中注销先前注册的事件处理程序。 一个处理程序可能已被注册用于不同的事件类型,因此调用者需要指定特定的事件类型,从中注销处理程序。- 重写:
-
removeEventHandler
在MenuItem
- 参数类型
-
E
- 处理程序的特定事件类 - 参数
-
eventType
- 要注销的事件类型 -
eventHandler
- 要注销的处理程序
-
buildEventDispatchChain
public EventDispatchChain buildEventDispatchChain(EventDispatchChain tail)
为此目标构建事件调度链。 事件调度链包含可能对处理针对EventTarget
的事件感兴趣的事件调度EventTarget
。 此事件目标不会自动添加到链中,因此如果要处理事件,则需要为链接添加一个EventDispatcher
。在事件目标是某些层次结构的一部分的情况下,它的链通常是从从层次结构的根被收集到事件目标的事件分派器构建的。
事件调度链是通过修改提供的初始事件调度链来构建的。 返回的链应该在其末端具有初始链,所以调度员应该放在初始链上。
调用者不应该假定初始链条保持不变,也不会返回值引用不同的链。
- Specified by:
-
buildEventDispatchChain
接口EventTarget
- 重写:
-
buildEventDispatchChain
在MenuItem
- 参数
-
tail
- 建立的初始链 - 结果
- 此目标的结果事件调度链
-
-