java.lang.Object java.awt.MenuComponent java.awt.MenuItem
public class MenuItem
菜单中的所有项必须属于类 MenuItem
或其子类之一。
默认的 MenuItem
对象包含一个简单的加标签的菜单项。
此菜单栏的图像显示五个菜单项:
前两项是较简单的菜单项,加有标签 "Basic"
和 "Simple"
。跟在这两项后面的是一个分隔符,它本身是一个使用标签 "-"
创建的菜单项。接下来是加有 "Check"
标签的 CheckboxMenuItem
的实例。最后一个菜单项是加有 "More Examples"
标签的子菜单,此子菜单是 Menu
的一个实例。
选择菜单项时,AWT 发送一个动作事件到该菜单项。由于该事件是一个 ActionEvent
实例,processEvent
方法会检查该事件,并将它传递到 processActionEvent
。后一方法将该事件重定向到任何 ActionListener
对象,该对象已在由此菜单项生成的动作事件中注册权益。
注意,子类 Menu
重写此行为,且在选择其中一个子项前不向该框架发送任何事件。
嵌套类摘要 | |
---|---|
protected class |
MenuItem.AccessibleAWTMenuItem 用于为可访问性提供默认支持的 MenuItem 的内部类。 |
从类 java.awt.MenuComponent 继承的嵌套类/接口 |
---|
MenuComponent.AccessibleAWTMenuComponent |
构造方法摘要 | |
---|---|
MenuItem() 构造具有空标签且没有键盘快捷方式的新菜单项。 |
|
MenuItem(String label) 构造具有指定的标签且没有键盘快捷方式的新菜单项。 |
|
MenuItem(String label, MenuShortcut s) 创建具有关联的键盘快捷方式的菜单项。 |
方法摘要 | ||
---|---|---|
void |
addActionListener(ActionListener l) 添加指定的动作侦听器,以从此菜单项接收动作事件。 |
|
void |
addNotify() 创建该菜单项的同位体。 |
|
void |
deleteShortcut() 删除与此菜单项关联的任何 MenuShortcut 对象。 |
|
void |
disable() 已过时。 从 JDK version 1.1 开始,由 setEnabled(boolean) 取代。 |
|
protected void |
disableEvents(long eventsToDisable) 禁止将事件提交到将由指定事件掩码参数定义的事件的菜单项。 |
|
void |
enable() 已过时。 从 JDK version 1.1 开始,由 setEnabled(boolean) 取代。 |
|
void |
enable(boolean b) 已过时。 从 JDK version 1.1 开始,由 setEnabled(boolean) 取代。 |
|
protected void |
enableEvents(long eventsToEnable) 允许将事件提交到将由指定事件掩码参数定义的事件的菜单项。 |
|
AccessibleContext |
getAccessibleContext() 获取与此菜单项关联的 AccessibleContext。 |
|
String |
getActionCommand() 获取由此菜单项引发的动作事件的命令名。 |
|
ActionListener[] |
getActionListeners() 返回在此菜单项上注册的所有动作侦听器组成的数组。 |
|
String |
getLabel() 获取此菜单项的标签。 |
|
|
getListeners(Class<T> listenerType) 返回当前在此 MenuItem 上注册为 FooListener 的所有对象组成的数组。 |
|
MenuShortcut |
getShortcut() 获取与此菜单项关联的 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 对象。 |
从类 java.awt.MenuComponent 继承的方法 |
---|
dispatchEvent, getFont, getName, getParent, getPeer, getTreeLock, postEvent, removeNotify, setFont, setName, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public MenuItem() throws HeadlessException
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。
GraphicsEnvironment.isHeadless()
public MenuItem(String label) throws HeadlessException
label
- 此菜单项的标签。
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。
GraphicsEnvironment.isHeadless()
public MenuItem(String label, MenuShortcut s) throws HeadlessException
label
- 此菜单项的标签。
s
- 与此菜单项关联的
MenuShortcut
的实例。
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。
GraphicsEnvironment.isHeadless()
方法详细信息 |
---|
public void addNotify()
public String getLabel()
null
。
setLabel(java.lang.String)
public void setLabel(String label)
label
- 新标签,如果无标签,则该参数为
null
。
getLabel()
public boolean isEnabled()
setEnabled(boolean)
public void setEnabled(boolean b)
b
- 如果该参数为
true
,则启用此菜单项;如果该参数为
false
,则禁用它。
isEnabled()
@Deprecated public void enable()
setEnabled(boolean)
取代。
@Deprecated public void enable(boolean b)
setEnabled(boolean)
取代。
@Deprecated public void disable()
setEnabled(boolean)
取代。
public MenuShortcut getShortcut()
MenuShortcut
对象。
null
。
setShortcut(java.awt.MenuShortcut)
public void setShortcut(MenuShortcut s)
MenuShortcut
对象。如果某一菜单快捷方式已经与此菜单项关联,则取代它。
s
- 与此菜单项关联的菜单快捷方式。
getShortcut()
public void deleteShortcut()
MenuShortcut
对象。
protected final void enableEvents(long eventsToEnable)
由于在将事件类型的侦听器添加到菜单项时,会自动启用该事件类型,所以只需通过 MenuItem
的子类调用此方法即可,该子类要具有提交到 processEvent
的指定事件类型,不管侦听器是否注册。
eventsToEnable
- 定义事件类型的事件掩码
processEvent(java.awt.AWTEvent)
,
disableEvents(long)
,
Component.enableEvents(long)
protected final void disableEvents(long eventsToDisable)
eventsToDisable
- 定义事件类型的事件掩码
processEvent(java.awt.AWTEvent)
,
enableEvents(long)
,
Component.disableEvents(long)
public void setActionCommand(String command)
默认情况下,动作命令设置为菜单项的标签。
command
- 要为此菜单项设置的动作命令。
getActionCommand()
public String getActionCommand()
setActionCommand(java.lang.String)
public void addActionListener(ActionListener l)
有关 AWT 的线程模型的详细信息,请参阅 AWT 线程问题。
l
- 动作侦听器。
removeActionListener(java.awt.event.ActionListener)
,
getActionListeners()
,
ActionEvent
,
ActionListener
public void removeActionListener(ActionListener l)
有关 AWT 的线程模型的详细信息,请参阅 AWT 线程问题。
l
- 动作侦听器。
addActionListener(java.awt.event.ActionListener)
,
getActionListeners()
,
ActionEvent
,
ActionListener
public ActionListener[] getActionListeners()
ActionListener
,如果当前未注册动作侦听器,则返回空数组。
addActionListener(java.awt.event.ActionListener)
,
removeActionListener(java.awt.event.ActionListener)
,
ActionEvent
,
ActionListener
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
MenuItem
上注册为
FooListener
的所有对象组成的数组。
FooListener
使用
addFooListener
方法注册。
可以使用类文本(如 FooListener.class
)指定 listenerType
参数。例如,可以使用下面的代码查询 MenuItem
m
的动作侦听器:
ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));如果不存在此类侦听器,则此方法返回一个空数组。
listenerType
- 请求的侦听器的类型;此参数应指定一个从
java.util.EventListener
继承的接口
FooListener
的所有对象组成的数组,如果未添加此侦听器,则返回一个空数组
ClassCastException
- 如果
listenerType
未指定一个类或者实现
java.util.EventListener
的接口。
getActionListeners()
protected void processEvent(AWTEvent e)
ActionEvent
的一个实例,则调用
processActionEvent
(通过
MenuItem
定义的另一个方法)。
当前,菜单项仅支持动作事件。
注意,如果事件参数为 null
,则行为是不确定的,而且可能导致异常。
MenuComponent
中的
processEvent
e
- 事件
ItemEvent
,
#processItemEvent
protected void processActionEvent(ActionEvent e)
ActionListener
对象。不调用此方法,除非为此组件启用了动作事件。在发生以下情况之一时启用动作事件:
addActionListener
注册 ActionListener
对象。 enableEvents
启用动作事件。 注意,如果事件参数为 null
,则行为是不确定的,而且可能导致异常。
e
- 动作事件
ActionEvent
,
ActionListener
,
enableEvents(long)
public String paramString()
MenuItem
状态的字符串。此方法仅用于调试目的,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可以为空,但不可以为
null
。
MenuComponent
中的
paramString
public AccessibleContext getAccessibleContext()
Accessible
中的
getAccessibleContext
MenuComponent
中的
getAccessibleContext