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));,这样,用户可以通过按下指定的快捷键来触发菜单项
