Module  java.desktop
软件包  java.awt

Class MenuItem

  • All Implemented Interfaces:
    SerializableAccessible
    已知直接子类:
    CheckboxMenuItemMenu


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

    默认的MenuItem对象体现了一个简单的标签菜单项。

    菜单栏的这张照片显示五个菜单项: 以下文字描述了此图形。
    前两个项目是简单的菜单项,标记为"Basic""Simple" 以下这两个项目是一个分隔符,它本身就是一个菜单项,用标签"-"创建。 接下来是CheckboxMenuItem标记为"Check"的实例。 最后一个菜单项是一个标有"More Examples"的子菜单,此子菜单是Menu一个实例。

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

    请注意,子类Menu会覆盖此行为,并且不会将任何事件发送到该帧,直到选择其中一个子项。

    另请参见:
    Serialized Form
    • 构造方法详细信息

      • 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)
      • setActionCommand

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

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

        参数
        command - 要为此菜单项设置的动作命令。
        从以下版本开始:
        1.1
        另请参见:
        getActionCommand()
      • getActionCommand

        public String getActionCommand​()
        获取此菜单项触发的操作事件的命令名称。
        结果
        动作命令名称
        从以下版本开始:
        1.1
        另请参见:
        setActionCommand(java.lang.String)
      • 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则行为未指定,并可能导致异常。

        重写:
        processEventMenuComponent
        参数
        e - 事件
        从以下版本开始:
        1.1
        另请参见:
        processActionEvent(java.awt.event.ActionEvent)
      • processActionEvent

        protected void processActionEvent​(ActionEvent e)
        通过将这些事件发送到任何已注册的ActionListener对象来处理此菜单项上发生的操作事件。 除非为此组件启用了操作事件,否则不会调用此方法。 当发生以下情况之一时,启用操作事件:
        • 通过addActionListener注册一个ActionListener对象。
        • 通过enableEvents启用操作事件。

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

        参数
        e - 动作事件
        从以下版本开始:
        1.1
        另请参见:
        ActionEventActionListenerenableEvents(long)
      • paramString

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

        public AccessibleContext getAccessibleContext​()
        获取与此MenuItem关联的AccessibleContext。 对于菜单项,AccessibleContext采用AccessibleAWTMenuItem的形式。 如有必要,将创建一个新的AccessibleAWTMenuItem实例。
        Specified by:
        getAccessibleContext在接口 Accessible
        重写:
        getAccessibleContextMenuComponent
        结果
        一个AccessibleAWTMenuItem,用作此MenuItem的AccessibleContext
        从以下版本开始:
        1.3