模块  java.desktop
软件包  javax.swing

Class JMenuBar

  • 实现的所有接口
    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开始, java.beans软件包中添加了对所有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)
        Deprecated.
        replaced by 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且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
        重写:
        paramString在类 JComponent
        结果
        JMenuBar的字符串表示 JMenuBar
      • processKeyBinding

        protected boolean processKeyBinding​(KeyStroke ks,
                                            KeyEvent e,
                                            int condition,
                                            boolean pressed)
        Subclassed检查所有儿童菜单。
        重写:
        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