目录

JMenuBar

介绍 (Introduction)

JMenuBar类提供菜单栏的实现。

Class 声明 (Class Declaration)

以下是javax.swing.JMenuBar类的声明 -

public class JMenuBar
   extends JComponent
      implements Accessible, MenuElement

类构造函数 (Class Constructors)

Sr.No. 构造函数和描述
1

JMenuBar()

创建一个新的菜单栏。

Class Methods

Sr.No. 方法和描述
1

JMenu add(JMenu c)

将指定的菜单追加到菜单栏的末尾。

2

void addNotify()

覆盖JComponent.addNotify以使用当前键盘管理器注册此菜单栏。

3

AccessibleContext getAccessibleContext()

获取与此JMenuBar关联的AccessibleContext。

4

Component getComponent()

实现为MenuElement。

5

Component getComponentAtIndex(int i)

已过时。 替换为getComponent(int i)

6

int getComponentIndex(Component c)

返回指定组件的索引。

7

JMenu getHelpMenu()

获取菜单栏的帮助菜单。

8

Insets getMargin()

返回菜单栏边框与菜单之间的边距。

9

JMenu getMenu(int index)

返回菜单栏中指定位置的菜单。

10

int getMenuCount()

返回菜单栏中的项目数。

11

SingleSelectionModel getSelectionModel()

返回处理单个选择的模型对象。

12

MenuElement[] getSubElements()

实现为MenuElement。 返回此菜单栏中的菜单。

13

MenuBarUI getUI()

返回菜单栏的当前UI。

14

String getUIClassID()

返回呈现此组件的L&F类的名称。

15

boolean isBorderPainted()

如果应绘制菜单栏边框,则返回true。

16

boolean isSelected()

如果菜单栏当前已选择组件,则返回true。

17

void menuSelectionChanged(boolean isIncluded)

实现为MenuElement,什么都不做。

18

protected void paintBorder(Graphics g)

如果BorderPainted属性为true,则绘制菜单栏的边界。

19

protected String paramString()

返回此JMenuBar的字符串表示形式。

20

protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)

Subclassed检查所有儿童菜单。

21

void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)

实现为MenuElement,什么都不做。

22

void processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)

实现为MenuElement,什么都不做。

23

void removeNotify()

覆盖JComponent.removeNotify以使用当前键盘管理器取消注册此菜单栏。

24

void setBorderPainted(boolean b)

设置是否应绘制边框。

25

void setHelpMenu(JMenu menu)

设置用户在菜单栏中选择“帮助”选项时显示的帮助菜单。

26

void setMargin(Insets m)

设置菜单栏边框与菜单之间的边距。

27

void setSelected(Component sel)

设置当前选定的组件,生成对选择模型的更改。

28

void setSelectionModel(SingleSelectionModel model)

设置模型对象以处理单个选择。

29

void setUI(MenuBarUI ui)

设置呈现此组件的L&F对象。

30

void updateUI()

使用当前外观中的值重置UI属性。

方法继承 (Methods Inherited)

该类继承以下类中的方法 -

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JMenuBar示例

使用您选择的任何编辑器创建以下Java程序,例如D:/ 》 SWING 》 com 》 iowiki 》 gui 》

SwingMenuDemo.java

package com.iowiki.gui;
import java.awt.*;
import java.awt.event.*;
public class SwingMenuDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel; 
   public SwingMenuDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingMenuDemo  swingMenuDemo = new SwingMenuDemo();     
      swingMenuDemo.showMenuDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      headerLabel = new JLabel("",JLabel.CENTER );
      statusLabel = new JLabel("",JLabel.CENTER);        
      statusLabel.setSize(350,100);
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());
      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showMenuDemo(){
      //create a menu bar
      final JMenuBar menuBar = new JMenuBar();
      //create menus
      JMenu fileMenu = new JMenu("File");
      JMenu editMenu = new JMenu("Edit"); 
      final JMenu aboutMenu = new JMenu("About");
      final JMenu linkMenu = new JMenu("Links");
      //create menu items
      JMenuItem newMenuItem = new JMenuItem("New");
      newMenuItem.setMnemonic(KeyEvent.VK_N);
      newMenuItem.setActionCommand("New");
      JMenuItem openMenuItem = new JMenuItem("Open");
      openMenuItem.setActionCommand("Open");
      JMenuItem saveMenuItem = new JMenuItem("Save");
      saveMenuItem.setActionCommand("Save");
      JMenuItem exitMenuItem = new JMenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");
      JMenuItem cutMenuItem = new JMenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");
      JMenuItem copyMenuItem = new JMenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");
      JMenuItem pasteMenuItem = new JMenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
      MenuItemListener menuItemListener = new MenuItemListener();
      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);
      final JCheckBoxMenuItem showWindowMenu = new JCheckBoxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            } else {
               menuBar.remove(aboutMenu);
            }
         }
      });
      final JRadioButtonMenuItem showLinksMenu = new JRadioButtonMenuItem(
         "Show Links", true);
      showLinksMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(menuBar.getMenu(3)!= null){
               menuBar.remove(linkMenu);
               mainFrame.repaint();
            } else {                   
               menuBar.add(linkMenu);
               mainFrame.repaint();
            }
         }
      });
      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(showLinksMenu);       
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);        
      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);
      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);       
      menuBar.add(linkMenu);
      //add menubar to the frame
      mainFrame.setJMenuBar(menuBar);
      mainFrame.setVisible(true);     
   }
   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() + " JMenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。 转到D:/ 》 SWING并键入以下命令。

D:\SWING>javac com\iowiki\gui\SwingMenuDemo.java

如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。

D:\SWING>java com.iowiki.gui.SwingMenuDemo

验证以下输出。

SWING JMenuBar
↑回到顶部↑
WIKI教程 @2018