上一篇                     
               
			  java怎么使用menu控件
- 后端开发
- 2025-07-08
- 4045
 Java中,使用
 
 
JMenuBar创建菜单栏,用
 JMenu添加菜单,以
 JMenuItem添加菜单项,并通过
 addActionListener为菜单项添加事件监听器
Java中,使用Menu控件可以创建功能丰富的图形用户界面(GUI)菜单系统,以下是详细的步骤和示例代码,帮助你掌握如何在Java中使用Menu控件。
准备工作
-  导入必要的包: - 如果你使用的是Swing库,需要导入javax.swing.。
- 如果你使用的是AWT库,需要导入java.awt.。
 
- 如果你使用的是Swing库,需要导入
-  创建主窗口: - 通常使用JFrame或Frame作为主窗口。
 
- 通常使用
创建菜单栏(MenuBar)
-  Swing方式: JMenuBar menuBar = new JMenuBar(); 
-  AWT方式: MenuBar menuBar = new MenuBar(); 
创建菜单(Menu)
-  Swing方式:  JMenu fileMenu = new JMenu("File");
-  AWT方式: Menu fileMenu = new Menu("File");
创建菜单项(MenuItem)
-  Swing方式: JMenuItem openItem = new JMenuItem("Open");
-  AWT方式: MenuItem openItem = new MenuItem("Open");
将菜单项添加到菜单中
-  Swing方式:  fileMenu.add(openItem); 
-  AWT方式: fileMenu.add(openItem); 
将菜单添加到菜单栏中
-  Swing方式: menuBar.add(fileMenu); 
-  AWT方式: menuBar.add(fileMenu); 
将菜单栏设置到主窗口中
-  Swing方式:  frame.setJMenuBar(menuBar); 
-  AWT方式: frame.setMenuBar(menuBar); 
为菜单项添加事件监听器
-  Swing方式: openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 在这里编写打开文件的代码 } });
-  AWT方式: openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 在这里编写打开文件的代码 } });
完整示例代码(Swing)
import javax.swing.;
import java.awt.event.;
public class MenuExample extends JFrame {
    public MenuExample() {
        // 创建主窗口
        setTitle("Menu Example");
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 创建菜单栏
        JMenuBar menuBar = new JMenuBar();
        // 创建“文件”菜单
        JMenu fileMenu = new JMenu("File");
        // 创建菜单项
        JMenuItem openItem = new JMenuItem("Open");
        JMenuItem saveItem = new JMenuItem("Save");
        JMenuItem exitItem = new JMenuItem("Exit");
        // 将菜单项添加到“文件”菜单中
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        fileMenu.addSeparator(); // 添加分隔符
        fileMenu.add(exitItem);
        // 将“文件”菜单添加到菜单栏中
        menuBar.add(fileMenu);
        // 将菜单栏设置到主窗口中
        setJMenuBar(menuBar);
        // 为菜单项添加事件监听器
        openItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 在这里编写打开文件的代码
                JOptionPane.showMessageDialog(null, "Open selected");
            }
        });
        saveItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 在这里编写保存文件的代码
                JOptionPane.showMessageDialog(null, "Save selected");
            }
        });
        exitItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 在这里编写退出程序的代码
                System.exit(0);
            }
        });
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MenuExample().setVisible(true);
            }
        });
    }
} 
完整示例代码(AWT)
import java.awt.;
import java.awt.event.;
public class MenuExample extends Frame {
    public MenuExample() {
        // 创建主窗口
        setTitle("Menu Example");
        setSize(400, 300);
        setLayout(new BorderLayout());
        // 创建菜单栏
        MenuBar menuBar = new MenuBar();
        // 创建“文件”菜单
        Menu fileMenu = new Menu("File");
        // 创建菜单项
        MenuItem openItem = new MenuItem("Open");
        MenuItem saveItem = new MenuItem("Save");
        MenuItem exitItem = new MenuItem("Exit");
        // 将菜单项添加到“文件”菜单中
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        fileMenu.addSeparator(); // 添加分隔符
        fileMenu.add(exitItem);
        // 将“文件”菜单添加到菜单栏中
        menuBar.add(fileMenu);
        // 将菜单栏设置到主窗口中
        setMenuBar(menuBar);
        // 为菜单项添加事件监听器
        openItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 在这里编写打开文件的代码
                Dialog dialog = new Dialog(MenuExample.this, "Message", true);
                dialog.setLayout(new FlowLayout());
                dialog.add(new Label("Open selected"));
                dialog.setSize(200, 100);
                dialog.setVisible(true);
            }
        });
        saveItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 在这里编写保存文件的代码
                Dialog dialog = new Dialog(MenuExample.this, "Message", true);
                dialog.setLayout(new FlowLayout());
                dialog.add(new Label("Save selected"));
                dialog.setSize(200, 100);
                dialog.setVisible(true);
            }
        });
        exitItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 在这里编写退出程序的代码
                System.exit(0);
            }
        });
    }
    public static void main(String[] args) {
        MenuExample example = new MenuExample();
        example.setVisible(true);
    }
} 
十一、相关FAQs
Q1:如何在Java中为菜单项设置快捷键?
A1:在Swing中,可以使用JMenuItem的setAccelerator方法设置快捷键。openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));,在AWT中,可以使用MenuItem的setShortcut方法设置快捷键。openItem.setShortcut(new MenuShortcut(KeyEvent.VK_O, false));,这样,用户可以通过按下指定的快捷键来触发菜单项
 
  
			