模块 java.desktop

类 JMenuItem

所有已实现的接口:
ImageObserver , ItemSelectable , MenuContainer , Serializable , Accessible , MenuElement , SwingConstants
已知子类:
JCheckBoxMenuItem , JMenu , JRadioButtonMenuItem

@JavaBean (defaultProperty ="UIClassID", description ="An item which can be selected in a menu.") public class JMenuItem extends AbstractButton implements Accessible , MenuElement
菜单中项目的实现。菜单项本质上是一个位于列表中的按钮。当用户选择“按钮”时,将执行与菜单项关联的操作。 JPopupMenu 中包含的 JMenuItem 执行该功能。

Actions 可以配置菜单项,并在某种程度上控制它们。将Action 与菜单项一起使用比直接配置菜单项有很多好处。有关详细信息,请参阅 摇摆组件支持Action,您可以在 如何使用动作 中找到更多信息,这是 The Java Tutorial 中的一个部分。

有关更多文档和示例,请参阅 The Java Tutorial. 中的 如何使用菜单

Warning: Swing 不是线程安全的。有关详细信息,请参阅 Swing 的线程策略

Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder

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

    • JMenuItem

      public JMenuItem()
      创建一个没有设置文本或图标的JMenuItem
    • JMenuItem

      public JMenuItem(Icon  icon)
      创建一个带有指定图标的 JMenuItem
      参数:
      icon - JMenuItem 的图标
    • JMenuItem

      public JMenuItem(String  text)
      用指定的文本创建一个 JMenuItem
      参数:
      text - JMenuItem 的文本
    • JMenuItem

      public JMenuItem(Action  a)
      创建一个菜单项,其属性取自指定的 Action
      参数:
      a - JMenuItem 的动作
      自从:
      1.3
    • JMenuItem

      public JMenuItem(String  text, Icon  icon)
      创建具有指定文本和图标的 JMenuItem
      参数:
      text - JMenuItem 的文本
      icon - JMenuItem 的图标
    • JMenuItem

      public JMenuItem(String  text, int mnemonic)
      使用指定的文本和键盘助记符创建 JMenuItem
      参数:
      text - JMenuItem 的文本
      mnemonic - JMenuItem 的键盘助记符
  • 方法详情

    • setModel

      public void setModel(ButtonModel  newModel)
      设置此按钮代表的模型。
      重写:
      setModel 在类 AbstractButton
      参数:
      newModel - 新的 ButtonModel
      参见:
    • init

      protected void init(String  text, Icon  icon)
      使用指定的文本和图标初始化菜单项。
      重写:
      init 在类 AbstractButton
      参数:
      text - JMenuItem 的文本
      icon - JMenuItem 的图标
    • setUI

      @BeanProperty (hidden =true, visualUpdate =true, description ="The UI object that implements the LookAndFeel.") public void setUI(MenuItemUI  ui)
      设置呈现此组件的外观对象。
      参数:
      ui - JMenuItemUI L&F 对象
      参见:
    • updateUI

      public void updateUI()
      使用当前外观的值重置 UI 属性。
      重写:
      updateUI 在类 AbstractButton
      参见:
    • getUIClassID

      @BeanProperty (bound =false) public String  getUIClassID()
      返回用于构造用于呈现此组件的 L&F 类名称的后缀。
      重写:
      getUIClassID 在类 JComponent
      返回:
      字符串“MenuItemUI”
      参见:
    • setArmed

      @BeanProperty (bound =false, hidden =true, description ="Mouse release will fire an action event") public void setArmed(boolean b)
      将菜单项标识为“武装”。如果鼠标按钮在此项上时被释放,菜单的动作事件将被触发。如果鼠标按钮在别处被释放,事件将不会触发并且菜单项将被解除。
      参数:
      b - 设置菜单项为真,以便可以选择
    • isArmed

      public boolean isArmed()
      返回菜单项是否“武装”。
      返回:
      如果菜单项处于武装状态且可以选择,则为真
      参见:
    • setEnabled

      @BeanProperty (preferred =true, description ="The enabled state of the component.") public void setEnabled(boolean b)
      启用或禁用菜单项。
      重写:
      setEnabled 在类 AbstractButton
      参数:
      b - true 启用该项目
      参见:
    • setAccelerator

      @BeanProperty (preferred =true, description ="The keystroke combination which will invoke the JMenuItem\'s actionlisteners without navigating the menu hierarchy") public void setAccelerator(KeyStroke  keyStroke)
      设置在不导航菜单层次结构的情况下调用菜单项的动作监听的组合键。安装正确的操作是 UI 的责任。请注意,当键入键盘快捷键时,无论当前是否显示菜单,它都会起作用。
      参数:
      keyStroke - KeyStroke 将用作加速器
    • getAccelerator

      public KeyStroke  getAccelerator()
      返回用作菜单项快捷键的 KeyStroke
      返回:
      一个 KeyStroke 对象标识加速键
    • configurePropertiesFromAction

      protected void configurePropertiesFromAction(Action  a)
      设置此按钮的属性以匹配指定的 Action 中的属性。有关此设置的属性的更多详细信息,请参阅 摇摆组件支持Action
      重写:
      configurePropertiesFromAction 在类 AbstractButton
      参数:
      a - 从中获取属性的 Action,或 null
      自从:
      1.3
      参见:
    • actionPropertyChanged

      protected void actionPropertyChanged(Action  action, String  propertyName)
      更新按钮的状态以响应关联操作中的属性更改。从 createActionPropertyChangeListener 返回的 PropertyChangeListener 调用此方法。子类通常不需要调用它。支持额外 Action 属性的子类应该覆盖这个和 configurePropertiesFromAction

      有关此方法设置的属性列表,请参阅 摇摆组件支持Action 中的表格。

      重写:
      actionPropertyChanged 在类 AbstractButton
      参数:
      action - 与此按钮关联的 Action
      propertyName - 更改的属性的名称
      自从:
      1.6
      参见:
    • processMouseEvent

      public void processMouseEvent(MouseEvent  e, MenuElement [] path, MenuSelectionManager  manager)
      处理从 MenuSelectionManager 转发的鼠标事件,并在必要时使用 MenuSelectionManager 的 API 更改菜单选择。

      注意:您不必将事件转发给子组件。这是由 MenuSelectionManager 自动完成的。

      指定者:
      processMouseEvent 在接口 MenuElement
      参数:
      e - 一个 MouseEvent
      path - MenuElement 路径数组
      manager - MenuSelectionManager
    • processKeyEvent

      public void processKeyEvent(KeyEvent  e, MenuElement [] path, MenuSelectionManager  manager)
      处理从 MenuSelectionManager 转发的按键事件,并在必要时使用 MenuSelectionManager 的 API 更改菜单选择。

      注意:您不必将事件转发给子组件。这是由 MenuSelectionManager 自动完成的。

      指定者:
      processKeyEvent 在接口 MenuElement
      参数:
      e - 一个 KeyEvent
      path - MenuElement 路径数组
      manager - MenuSelectionManager
    • processMenuDragMouseEvent

      public void processMenuDragMouseEvent(MenuDragMouseEvent  e)
      处理菜单中的鼠标拖动。
      参数:
      e - 一个 MenuDragMouseEvent 对象
    • processMenuKeyEvent

      public void processMenuKeyEvent(MenuKeyEvent  e)
      处理菜单中的击键。
      参数:
      e - 一个 MenuKeyEvent 对象
    • fireMenuDragMouseEntered

      protected void fireMenuDragMouseEntered(MenuDragMouseEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuMouseDragEvent
      参见:
    • fireMenuDragMouseExited

      protected void fireMenuDragMouseExited(MenuDragMouseEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuDragMouseEvent
      参见:
    • fireMenuDragMouseDragged

      protected void fireMenuDragMouseDragged(MenuDragMouseEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuDragMouseEvent
      参见:
    • fireMenuDragMouseReleased

      protected void fireMenuDragMouseReleased(MenuDragMouseEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuDragMouseEvent
      参见:
    • fireMenuKeyPressed

      protected void fireMenuKeyPressed(MenuKeyEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuKeyEvent
      参见:
    • fireMenuKeyReleased

      protected void fireMenuKeyReleased(MenuKeyEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuKeyEvent
      参见:
    • fireMenuKeyTyped

      protected void fireMenuKeyTyped(MenuKeyEvent  event)
      通知所有已注册对此事件类型的通知感兴趣的监听。
      参数:
      event - 一个 MenuKeyEvent
      参见:
    • getSubElements

      @BeanProperty (bound =false) public MenuElement [] getSubElements()
      此方法返回一个数组,其中包含此菜单组件的子菜单组件。
      指定者:
      getSubElements 在接口 MenuElement
      返回:
      MenuElement 的数组
    • getComponent

      public Component  getComponent()
      返回用于绘制此对象的 java.awt.Component。返回的组件将用于转换事件并检测事件是否在菜单组件内。
      指定者:
      getComponent 在接口 MenuElement
      返回:
      绘制此菜单项的 Component
    • addMenuDragMouseListener

      public void addMenuDragMouseListener(MenuDragMouseListener  l)
      向菜单项添加 MenuDragMouseListener
      参数:
      l - 要添加的 MenuDragMouseListener
    • removeMenuDragMouseListener

      public void removeMenuDragMouseListener(MenuDragMouseListener  l)
      从菜单项中删除 MenuDragMouseListener
      参数:
      l - 要删除的 MenuDragMouseListener
    • getMenuDragMouseListeners

      @BeanProperty (bound =false) public MenuDragMouseListener [] getMenuDragMouseListeners()
      返回使用 addMenuDragMouseListener() 添加到此 JMenuItem 的所有 MenuDragMouseListener 的数组。
      返回:
      添加所有 MenuDragMouseListener s,如果没有添加任何监听器,则为空数组
      自从:
      1.4
    • addMenuKeyListener

      public void addMenuKeyListener(MenuKeyListener  l)
      向菜单项添加 MenuKeyListener
      参数:
      l - 要添加的 MenuKeyListener
    • removeMenuKeyListener

      public void removeMenuKeyListener(MenuKeyListener  l)
      从菜单项中删除 MenuKeyListener
      参数:
      l - 要删除的 MenuKeyListener
    • getMenuKeyListeners

      @BeanProperty (bound =false) public MenuKeyListener [] getMenuKeyListeners()
      返回使用 addMenuKeyListener() 添加到此 JMenuItem 的所有 MenuKeyListener 的数组。
      返回:
      添加所有 MenuKeyListener 或如果未添加任何监听器,则为空数组
      自从:
      1.4
    • paramString

      protected String  paramString()
      返回此 JMenuItem 的字符串表示形式。此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。返回的字符串可能为空,但可能不是 null
      重写:
      paramString 在类 AbstractButton
      返回:
      这个 JMenuItem 的字符串表示
    • getAccessibleContext

      @BeanProperty (bound =false) public AccessibleContext  getAccessibleContext()
      返回与此 JMenuItem 关联的 AccessibleContext。对于 JMenuItem s,AccessibleContext 采用 AccessibleJMenuItem 的形式。如有必要,将创建一个新的 AccessibleJMenuItme 实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      重写:
      getAccessibleContext 在类 Component
      返回:
      一个 AccessibleJMenuItem 作为这个 JMenuItemAccessibleContext