模块 java.desktop
 java.awt

类 MenuItem

所有已实现的接口:
Serializable , Accessible
已知子类:
CheckboxMenuItem , Menu

public class MenuItem extends MenuComponent implements Accessible
菜单中的所有项目都必须属于类 MenuItem 或其子类之一。

默认的 MenuItem 对象包含一个简单的带标签的菜单项。

这张菜单栏图片显示了五个菜单项:The following text describes this
 graphic.
前两项是简单的菜单项,标记为 "Basic""Simple" 。在这两项之后是一个分隔符,它本身就是一个菜单项,使用标签 "-" 创建。接下来是标记为 "Check"CheckboxMenuItem 实例。最后一个菜单项是一个标记为 "More Examples" 的子菜单,这个子菜单是 Menu 的一个实例。

选择菜单项时,AWT 会向菜单项发送一个动作事件。由于该事件是 ActionEvent 的实例,因此 processEvent 方法会检查该事件并将其传递给 processActionEvent。后一种方法将事件重定向到任何已注册对此菜单项生成的操作事件感兴趣的ActionListener对象。

请注意,子类 Menu 覆盖了此行为,并且在选择其子项之一之前不会向框架发送任何事件。

参见:
  • 构造方法详细信息

    • MenuItem

      public MenuItem() throws HeadlessException
      构造一个带有空标签且没有键盘快捷键的新 MenuItem。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
      自从:
      1.1
      参见:
    • MenuItem

      public MenuItem(String  label) throws HeadlessException
      构造一个具有指定标签且没有键盘快捷键的新 MenuItem。请注意,在标签中使用“-”是为了指示菜单项之间的分隔符。默认情况下,启用除分隔符之外的所有菜单项。
      参数:
      label - 此菜单项的标签。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
      自从:
      1.0
      参见:
    • MenuItem

      public MenuItem(String  label, MenuShortcut  s) throws HeadlessException
      使用关联的键盘快捷键创建菜单项。请注意,在标签中使用“-”是为了指示菜单项之间的分隔符。默认情况下,启用除分隔符之外的所有菜单项。
      参数:
      label - 此菜单项的标签。
      s - 与此菜单项关联的 MenuShortcut 实例。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
      自从:
      1.1
      参见:
  • 方法详情

    • addNotify

      public void addNotify()
      创建菜单项的对等项。点允许我们在不改变其功能的情况下修改菜单项的外观。
    • getLabel

      public String  getLabel()
      获取此菜单项的标签。
      返回:
      此菜单项的标签,如果此菜单项没有标签,则为 null
      自从:
      1.0
      参见:
    • setLabel

      public void setLabel(String  label)
      将此菜单项的标签设置为指定的标签。
      参数:
      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 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 对象,
      返回:
      与此菜单项关联的菜单快捷方式,如果未指定,则为 null
      自从:
      1.1
      参见:
    • setShortcut

      public void setShortcut(MenuShortcut  s)
      设置与此菜单项关联的 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
      参见:
    • setActionCommand

      public void setActionCommand(String  command)
      设置由此菜单项触发的操作事件的命令名称。

      默认情况下,操作命令设置为菜单项的标签。

      参数:
      command - 要为此菜单项设置的操作命令。
      自从:
      1.1
      参见:
    • getActionCommand

      public String  getActionCommand()
      获取由此菜单项触发的操作事件的命令名称。
      返回:
      动作命令名称
      自从:
      1.1
      参见:
    • addActionListener

      public void addActionListener(ActionListener  l)
      添加指定的动作监听以接收来自此菜单项的动作事件。如果 l 为 null,则不会抛出异常并且不会执行任何操作。

      有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题

      参数:
      l - 动作监听器。
      自从:
      1.1
      参见:
    • removeActionListener

      public void removeActionListener(ActionListener  l)
      删除指定的动作监听,使其不再接收来自该菜单项的动作事件。如果 l 为 null,则不会抛出异常并且不会执行任何操作。

      有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题

      参数:
      l - 动作监听器。
      自从:
      1.1
      参见:
    • getActionListeners

      public ActionListener [] getActionListeners()
      返回在此菜单项上注册的所有动作监听的数组。
      返回:
      此菜单项的所有 ActionListener s 或空数组(如果当前没有注册任何动作监听器)
      自从:
      1.4
      参见:
    • getListeners

      public <T extends EventListener > T[] getListeners(Class <T> listenerType)
      返回当前在此 MenuItem 上注册为 FooListener 的所有对象的数组。 FooListener 是使用 addFooListener 方法注册的。

      您可以使用类文字指定 listenerType 参数,例如 FooListener.class 。例如,您可以使用以下代码查询 MenuItem m 的动作监听器:

      ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));
      如果不存在这样的监听器,则此方法返回一个空数组。
      类型参数:
      T - 监听器的类型
      参数:
      listenerType - 请求的监听器类型;此参数应指定从 java.util.EventListener 派生的接口
      返回:
      在此菜单项上注册为 FooListener 的所有对象的数组,如果没有添加此类监听器,则为空数组
      抛出:
      ClassCastException - 如果 listenerType 没有指定实现 java.util.EventListener 的类或接口
      自从:
      1.3
      参见:
    • processEvent

      protected void processEvent(AWTEvent  e)
      处理此菜单项上的事件。如果事件是 ActionEvent 的实例,它会调用 processActionEvent ,这是 MenuItem 定义的另一个方法。

      目前,菜单项仅支持动作事件。

      请注意,如果事件参数为 null,则行为未指定且可能导致异常。

      重写:
      processEvent 在类 MenuComponent
      参数:
      e - 事件
      自从:
      1.1
      参见:
    • processActionEvent

      protected void processActionEvent(ActionEvent  e)
      处理此菜单项上发生的操作事件,方法是将它们分派给任何已注册的 ActionListener 对象。除非为此组件启用动作事件,否则不会调用此方法。当发生以下情况之一时,将启用操作事件:
      • ActionListener 对象通过 addActionListener 注册。
      • 动作事件通过 enableEvents 启用。

      请注意,如果事件参数为 null,则行为未指定且可能导致异常。

      参数:
      e - 动作事件
      自从:
      1.1
      参见:
    • paramString

      public String  paramString()
      返回表示此 MenuItem 状态的字符串。此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。返回的字符串可能为空,但可能不是 null
      重写:
      paramString 在类 MenuComponent
      返回:
      该菜单项的参数字符串
    • getAccessibleContext

      public AccessibleContext  getAccessibleContext()
      获取与此 MenuItem 关联的 AccessibleContext。对于菜单项,AccessibleContext 采用 AccessibleAWTMenuItem 的形式。如有必要,将创建一个新的 AccessibleAWTMenuItem 实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      重写:
      getAccessibleContext 在类 MenuComponent
      返回:
      作为此 MenuItem 的 AccessibleContext 的 AccessibleAWTMenuItem
      自从:
      1.3