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