模块 java.desktop

类 JMenuBar

所有已实现的接口:
ImageObserver , MenuContainer , Serializable , Accessible , MenuElement
已知子类:
BasicInternalFrameTitlePane.SystemMenuBar

@JavaBean (defaultProperty ="UI", description ="A container for holding and displaying menus.") public class JMenuBar extends JComponent implements Accessible , MenuElement
菜单栏的实现。您将 JMenu 个对象添加到菜单栏以构建菜单。当用户选择一个 JMenu 对象时,会显示其关联的 JPopupMenu,允许用户选择其中一个 JMenuItems

有关使用菜单栏的信息和示例,请参阅 如何使用菜单The Java Tutorial. 中的一个部分

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

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

Warning: 默认情况下,按 Tab 键不会将焦点从与其他 Swing 组件一起添加到容器的 JMenuBar 转移,因为 JMenuBarfocusTraversalKeysEnabled 属性设置为 false 。要解决此问题,您应该调用 JMenuBar.setFocusTraversalKeysEnabled(true) 方法。

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

    • JMenuBar

      public JMenuBar()
      创建一个新的菜单栏。
  • 方法详情

    • getUI

      public MenuBarUI  getUI()
      返回菜单栏的当前 UI。
      重写:
      getUI 在类 JComponent
      返回:
      MenuBarUI 是菜单栏的当前 L&F 对象
      参见:
    • setUI

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

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

      @BeanProperty (bound =false) public String  getUIClassID()
      返回呈现此组件的 L&F 类的名称。
      重写:
      getUIClassID 在类 JComponent
      返回:
      字符串“MenuBarUI”
      参见:
    • getSelectionModel

      public SingleSelectionModel  getSelectionModel()
      返回处理单个选择的模型对象。
      返回:
      SingleSelectionModel 属性
      参见:
    • setSelectionModel

      @BeanProperty (description ="The selection model, recording which child is selected.") public void setSelectionModel(SingleSelectionModel  model)
      设置模型对象以处理单个选择。
      参数:
      model - 要使用的 SingleSelectionModel
      参见:
    • add

      public JMenu  add(JMenu  c)
      将指定的菜单附加到菜单栏的末尾。
      参数:
      c - 要添加的 JMenu 组件
      返回:
      菜单组件
    • getMenu

      public JMenu  getMenu(int index)
      返回菜单栏中指定位置的菜单。
      参数:
      index - 给出菜单栏位置的整数,其中 0 是第一个位置
      返回:
      JMenu 在该位置,或 null 如果该位置没有 JMenu (即如果它是 JMenuItem
    • getMenuCount

      @BeanProperty (bound =false) public int getMenuCount()
      返回菜单栏中的项目数。
      返回:
      菜单栏中的项目数
    • setHelpMenu

      public void setHelpMenu(JMenu  menu)
      设置当用户选择菜单栏中的“帮助”选项时出现的帮助菜单。此方法尚未实现,将抛出异常。
      参数:
      menu - 向用户提供帮助的 JMenu
    • getHelpMenu

      public JMenu  getHelpMenu()
      获取菜单栏的帮助菜单。此方法尚未实现,将抛出异常。
      返回:
      为用户提供帮助的JMenu
    • getComponentAtIndex

      @Deprecated public Component  getComponentAtIndex(int i)
      已弃用。
      getComponent(int i)取代
      返回指定索引处的组件。
      参数:
      i - 指定位置的整数,其中 0 是第一个
      返回:
      该位置的 Component,或无效索引的 null
    • getComponentIndex

      public int getComponentIndex(Component  c)
      返回指定组件的索引。
      参数:
      c - 要查找的 Component
      返回:
      一个给出组件位置的整数,其中 0 是第一个;或者 -1 如果找不到
    • setSelected

      public void setSelected(Component  sel)
      设置当前选择的组件,产生对选择模型的改变。
      参数:
      sel - 要选择的 Component
    • isSelected

      @BeanProperty (bound =false) public boolean isSelected()
      如果菜单栏当前选择了一个组件,则返回 true。
      返回:
      如果已做出选择,则为 true,否则为 false
    • isBorderPainted

      public boolean isBorderPainted()
      如果应该绘制菜单栏边框,则返回 true。
      返回:
      如果应该绘制边框,则为 true,否则为 false
    • setBorderPainted

      @BeanProperty (visualUpdate =true, description ="Whether the border should be painted.") public void setBorderPainted(boolean b)
      设置是否应绘制边框。
      参数:
      b - 如果 true 且边框属性不是 null ,则绘制边框。
      参见:
    • paintBorder

      protected void paintBorder(Graphics  g)
      如果 BorderPainted 属性为真,则绘制菜单栏的边框。
      重写:
      paintBorder 在类 JComponent
      参数:
      g - 用于绘画的 Graphics 上下文
      参见:
    • setMargin

      @BeanProperty (visualUpdate =true, description ="The space between the menubar\'s border and its contents") public void setMargin(Insets  m)
      设置菜单栏边框与其菜单之间的边距。设置为 null 将导致菜单栏使用默认边距。
      参数:
      m - 包含边距值的 Insets 对象
      参见:
    • getMargin

      public Insets  getMargin()
      返回菜单栏边框与其菜单之间的边距。如果没有先前的边距,它将创建一个零尺寸的默认边距。
      返回:
      包含边距值的 Insets 对象
      参见:
    • processMouseEvent

      public void processMouseEvent(MouseEvent  event, MenuElement [] path, MenuSelectionManager  manager)
      实现为 MenuElement——什么都不做。
      指定者:
      processMouseEvent 在接口 MenuElement
      参数:
      event - 待处理的 MouseEvent
      path - 菜单层次结构中接收元素的路径
      manager - 菜单层次结构的 MenuSelectionManager
      参见:
    • processKeyEvent

      public void processKeyEvent(KeyEvent  e, MenuElement [] path, MenuSelectionManager  manager)
      实现为 MenuElement——什么都不做。
      指定者:
      processKeyEvent 在接口 MenuElement
      参数:
      e - 待处理的 KeyEvent
      path - 菜单层次结构中接收元素的路径
      manager - 菜单层次结构的 MenuSelectionManager
      参见:
    • getSubElements

      @BeanProperty (bound =false) public MenuElement [] getSubElements()
      实现为MenuElement——返回此菜单栏中的菜单。这就是实现 MenuElement 接口的原因——这样菜单栏就可以像其他菜单元素一样被对待。
      指定者:
      getSubElements 在接口 MenuElement
      返回:
      菜单栏中的一系列菜单项。
    • getComponent

      public Component  getComponent()
      实施为 MenuElement 。返回此对象。
      指定者:
      getComponent 在接口 MenuElement
      返回:
      当前Component(这个)
      参见:
    • paramString

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

      @BeanProperty (bound =false) public AccessibleContext  getAccessibleContext()
      获取与此 JMenuBar 关联的 AccessibleContext。对于 JMenuBars,AccessibleContext 采用 AccessibleJMenuBar 的形式。如有必要,将创建一个新的 AccessibleJMenuBar 实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      重写:
      getAccessibleContext 在类 Component
      返回:
      作为此 JMenuBar 的 AccessibleContext 的 AccessibleJMenuBar
    • processKeyBinding

      protected boolean processKeyBinding(KeyStroke  ks, KeyEvent  e, int condition, boolean pressed)
      子类检查所有子菜单。
      重写:
      processKeyBinding 在类 JComponent
      参数:
      ks - 查询的 KeyStroke
      e - KeyEvent
      condition - 以下值之一:
      • JComponent.WHEN_FOCUSED
      • JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
      • JComponent.WHEN_IN_FOCUSED_WINDOW
      pressed - 如果按键被按下则为真
      返回:
      如果存在对操作的绑定并且该操作已启用,则为 true
      自从:
      1.3
    • addNotify

      public void addNotify()
      覆盖 JComponent.addNotify 以使用当前键盘管理器注册此菜单栏。
      重写:
      addNotify 在类 JComponent
      参见:
    • removeNotify

      public void removeNotify()
      覆盖 JComponent.removeNotify 以使用当前键盘管理器注销此菜单栏。
      重写:
      removeNotify 在类 JComponent
      参见: