java.lang.Object
java.awt.MenuComponent
java.awt.MenuItem
- 所有已实现的接口:
-
Serializable
,Accessible
- 直接已知的子类:
-
CheckboxMenuItem
,Menu
菜单中的所有项必须属于类
MenuItem
或其子类之一。
默认的MenuItem
对象代表一个简单的带标签的菜单项。
这张菜单栏的图片显示了五个菜单项:
前两个项是简单的菜单项,标记为"Basic"
和"Simple"
。接着是一个分隔符,它本身也是一个菜单项,使用标签"-"
创建。接下来是一个标记为"Check"
的CheckboxMenuItem
实例。最后一个菜单项是一个标记为"More Examples"
的子菜单,这个子菜单是Menu
的一个实例。
当选择菜单项时,AWT会向菜单项发送一个动作事件。由于事件是ActionEvent
的一个实例,processEvent
方法会检查事件并将其传递给processActionEvent
。后者会将事件重定向到任何已注册对此菜单项生成的动作事件感兴趣的ActionListener
对象。
请注意,子类Menu
覆盖了此行为,并且在选择其子项之前不会向框架发送任何事件。
- 参见:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
MenuItem的内部类,用于提供对辅助功能的默认支持。Nested classes/interfaces declared in class java.awt.MenuComponent
MenuComponent.AccessibleAWTMenuComponent
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
将指定的动作监听器添加到此菜单项以接收动作事件。void
创建菜单项的对等体。void
删除与此菜单项关联的任何MenuShortcut
对象。void
disable()
已弃用。protected final void
disableEvents
(long eventsToDisable) 禁用此菜单项的事件传递,对由指定事件掩码参数定义的事件。void
enable()
已弃用。自JDK版本1.1起,已被setEnabled(boolean)
替代。void
enable
(boolean b) 已弃用。自JDK版本1.1起,已被setEnabled(boolean)
替代。protected final void
enableEvents
(long eventsToEnable) 启用此菜单项的事件传递,对由指定事件掩码参数定义的事件。获取与此MenuItem关联的AccessibleContext。获取由此菜单项触发的动作事件的命令名称。返回在此菜单项上注册的所有动作监听器的数组。getLabel()
获取此菜单项的标签。<T extends EventListener>
T[]getListeners
(Class<T> listenerType) 返回当前在此MenuItem
上注册为FooListener
的所有对象的数组。获取与此菜单项关联的MenuShortcut
对象,boolean
检查此菜单项是否已启用。返回表示此MenuItem
状态的字符串。protected void
处理在此菜单项上发生的动作事件,将其分派给任何已注册的ActionListener
对象。protected void
处理此菜单项上的事件。void
删除指定的动作监听器,使其不再从此菜单项接收动作事件。void
setActionCommand
(String command) 设置由此菜单项触发的动作事件的命令名称。void
setEnabled
(boolean b) 设置此菜单项是否可选择。void
将此菜单项的标签设置为指定的标签。void
设置与此菜单项关联的MenuShortcut
对象。Methods declared in class java.awt.MenuComponent
dispatchEvent, getFont, getName, getParent, getTreeLock, postEvent, removeNotify, setFont, setName, toString
-
Constructor Details
-
MenuItem
用空标签和无键盘快捷键构造一个新的MenuItem。- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true。 - 自:
- 1.1
- 参见:
-
MenuItem
用指定的标签和无键盘快捷键构造一个新的MenuItem。请注意,标签中使用"-"保留用于指示菜单项之间的分隔符。默认情况下,除分隔符外的所有菜单项都是启用的。- 参数:
-
label
- 此菜单项的标签。 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true。 - 自:
- 1.0
- 参见:
-
MenuItem
创建一个带有关联键盘快捷键的菜单项。请注意,标签中使用"-"保留用于指示菜单项之间的分隔符。默认情况下,除分隔符外的所有菜单项都是启用的。- 参数:
-
label
- 此菜单项的标签。 -
s
- 与此菜单项关联的MenuShortcut
的实例。 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true。 - 自:
- 1.1
- 参见:
-
-
Method Details
-
addNotify
public void addNotify()创建菜单项的对等体。对等体允许我们修改菜单项的外观而不改变其功能。 -
getLabel
获取此菜单项的标签。- 返回:
-
此菜单项的标签,如果此菜单项没有标签,则返回
null
。 - 自:
- 1.0
- 参见:
-
setLabel
将此菜单项的标签设置为指定的标签。- 参数:
-
label
- 新标签,如果不需要标签,则为null
。 - 自:
- 1.0
- 参见:
-
isEnabled
public boolean isEnabled()检查此菜单项是否已启用。- 返回:
-
如果项目已启用,则返回
true
;否则返回false
- 自:
- 1.0
- 参见:
-
setEnabled
public void setEnabled(boolean b) 设置此菜单项是否可选择。- 参数:
-
b
- 如果为true
,则启用此菜单项;如果为false
,则禁用它。 - 自:
- 1.1
- 参见:
-
enable
Deprecated.As of JDK version 1.1, replaced bysetEnabled(boolean)
. -
enable
Deprecated.As of JDK version 1.1, replaced bysetEnabled(boolean)
.设置此菜单项是否可选择。- 参数:
-
b
- 如果为true
,则启用此菜单项;否则禁用
-
disable
Deprecated.As of JDK version 1.1, replaced bysetEnabled(boolean)
. -
getShortcut
获取与此菜单项关联的MenuShortcut
对象,- 返回:
-
与此菜单项关联的菜单快捷键,如果未指定任何菜单快捷键,则返回
null
。 - 自:
- 1.1
- 参见:
-
setShortcut
设置与此菜单项关联的MenuShortcut
对象。如果菜单快捷键已与此菜单项关联,则将其替换。- 参数:
-
s
- 要与此菜单项关联的菜单快捷键。 - 自:
- 1.1
- 参见:
-
deleteShortcut
public void deleteShortcut()删除与此菜单项关联的任何MenuShortcut
对象。- 自:
- 1.1
-
enableEvents
protected final void enableEvents(long eventsToEnable) 启用此菜单项的事件传递,对由指定事件掩码参数定义的事件由于当为该类型添加监听器时,事件类型会自动启用,因此此方法只需要由
MenuItem
的子类调用,这些子类希望将指定的事件类型传递给processEvent
,而不管是否已注册监听器。- 参数:
-
eventsToEnable
- 定义事件类型的事件掩码 - 自:
- 1.1
- 参见:
-
disableEvents
protected final void disableEvents(long eventsToDisable) 禁用此菜单项的事件传递,对由指定事件掩码参数定义的事件。- 参数:
-
eventsToDisable
- 定义事件类型的事件掩码 - 自1.1版本起:
- 1.1
- 参见:
-
setActionCommand
设置此菜单项触发的动作事件的命令名称。默认情况下,动作命令设置为菜单项的标签。
- 参数:
-
command
- 要为此菜单项设置的动作命令。 - 自1.1版本起:
- 1.1
- 参见:
-
getActionCommand
获取此菜单项触发的动作事件的命令名称。- 返回:
- 动作命令名称
- 自1.1版本起:
- 1.1
- 参见:
-
addActionListener
向此菜单项添加指定的动作监听器以接收来自此菜单项的动作事件。如果 l 为 null,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 动作监听器。 - 自1.1版本起:
- 1.1
- 参见:
-
removeActionListener
删除指定的动作监听器,使其不再从此菜单项接收动作事件。如果 l 为 null,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 动作监听器。 - 自1.1版本起:
- 1.1
- 参见:
-
getActionListeners
返回在此菜单项上注册的所有动作监听器的数组。- 返回:
-
所有此菜单项的
ActionListener
或如果当前未注册任何动作监听器,则返回空数组 - 自1.4版本起:
- 1.4
- 参见:
-
getListeners
返回当前在此MenuItem
上注册为FooListener
的所有对象的数组。FooListener
是使用addFooListener
方法注册的。您可以使用类字面量(例如
FooListener.class
)指定listenerType
参数。例如,您可以使用以下代码查询MenuItem m
的动作监听器:ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));
如果不存在此类监听器,则此方法返回一个空数组。- 类型参数:
-
T
- 监听器的类型 - 参数:
-
listenerType
- 请求的监听器类型;此参数应指定从java.util.EventListener
继承的接口 - 返回:
-
在此菜单项上注册为
FooListener
的所有对象的数组,如果尚未添加此类监听器,则返回空数组 - 抛出:
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 - 自1.3版本起:
- 1.3
- 参见:
-
processEvent
处理此菜单项上的事件。如果事件是ActionEvent
的实例,则调用MenuItem
定义的另一个方法processActionEvent
。当前,菜单项仅支持动作事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 覆盖:
-
processEvent
在类MenuComponent
中 - 参数:
-
e
- 事件 - 自1.1版本起:
- 1.1
- 参见:
-
processActionEvent
处理在此菜单项上发生的动作事件,将其分派给任何注册的ActionListener
对象。除非为此组件启用了动作事件,否则不会调用此方法。当发生以下情况之一时,将启用动作事件:- 通过
addActionListener
注册了一个ActionListener
对象。 - 通过
enableEvents
启用了动作事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 动作事件 - 自1.1版本起:
- 1.1
- 参见:
- 通过
-
paramString
返回表示此MenuItem
状态的字符串。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null
。- 覆盖:
-
paramString
在类MenuComponent
中 - 返回:
- 此菜单项的参数字符串
-
getAccessibleContext
获取与此 MenuItem 关联的 AccessibleContext。对于菜单项,AccessibleContext 采用 AccessibleAWTMenuItem 的形式。如果需要,将创建一个新的 AccessibleAWTMenuItem 实例。- 指定者:
-
getAccessibleContext
在接口Accessible
中 - 覆盖:
-
getAccessibleContext
在类MenuComponent
中 - 返回:
- 作为此 MenuItem 的 AccessibleContext 的 AccessibleAWTMenuItem
- 自1.3版本起:
- 1.3
-
setEnabled(boolean)
替代。