Module  java.desktop
软件包  javax.swing

Class JMenuBar

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessibleMenuElement
    已知直接子类:
    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

    有关使用菜单栏的信息和示例,请参阅“Java教程”中的 How to Use Menus ”一节

    警告: Swing不是线程安全的。 欲了解更多信息,请参阅Swing's Threading Policy

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

    警告:默认情况下,按下Tab键不会从转移焦点JMenuBar被添加到与其他Swing组件的容器一起,因为focusTraversalKeysEnabled财产JMenuBar设置为false 要解决这个问题,你应该调用JMenuBar.setFocusTraversalKeysEnabled(true)方法。

    从以下版本开始:
    1.2
    另请参见:
    JMenuJPopupMenuJMenuItemSerialized Form
    • 构造方法详细信息

      • JMenuBar

        public JMenuBar​()
        创建一个新的菜单栏。
    • 方法详细信息

      • 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。
        结果
        如果边框应该涂漆,否则为假
      • setBorderPainted

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

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

        public Insets getMargin​()
        返回菜单边框和菜单之间的边距。 如果没有以前的保证金,它将创建一个零大小的默认保证金。
        结果
        一个包含边距值的 Insets对象
        另请参见:
        Insets
      • menuSelectionChanged

        public void menuSelectionChanged​(boolean isIncluded)
        实现成为一个 MenuElement - 什么也没做。
        Specified by:
        menuSelectionChanged在接口 MenuElement
        参数
        isIncluded - 可以用于指示此 MenuElement是否处于活动状态(如果是菜单),或是位于更改菜单路径的部分(如果是菜单项)。
        另请参见:
        getSubElements()
      • getSubElements

        @BeanProperty(bound=false)
        public MenuElement[] getSubElements​()
        实现为MenuElement - 返回此菜单栏中的菜单。 这是实现MenuElement界面的原因,因此菜单栏可以与其他菜单元素相同。
        Specified by:
        getSubElements在接口 MenuElement
        结果
        菜单栏中的一系列菜单项。
      • paramString

        protected String paramString​()
        返回此JMenuBar的字符串表示JMenuBar 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramStringJComponent
        结果
        这个 JMenuBar的字符串表示 JMenuBar
      • processKeyBinding

        protected boolean processKeyBinding​(KeyStroke ks,
                                            KeyEvent e,
                                            int condition,
                                            boolean pressed)
        子类检查所有的子菜单。
        重写:
        processKeyBindingJComponent
        参数
        ks - KeyStroke查询
        e - KeyEvent
        condition - 以下值之一:
        • JComponent.WHEN_FOCUSED
        • JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
        • JComponent.WHEN_IN_FOCUSED_WINDOW
        pressed - 如果按下键,则为true
        结果
        如果对操作有约束力,并且该操作已启用,则为true
        从以下版本开始:
        1.3