菜单组件 的 总父容器是 MenuBar 菜单栏 组件 , 该组件需要放入到 Frame 窗口中 ;
// 创建菜单栏并添加到 Frame 对象中
MenuBar menuBar = new MenuBar();
frame.setMenuBar(menuBar);
创建 Menu 菜单组件 , 将其添加到 MenuBar 菜单栏组件中 ;
// 创建菜单并添加到菜单栏中
Menu menu = new Menu("文件");
menuBar.add(menu);
创建 MenuItem 菜单项组件 , 并为其设置 ActionListener 监听器 , 当选中该 菜单项 时 , 就会执行该 监听器中的 actionPerformed 回调函数 ;
创建完毕后 , 将 MenuItem 菜单项组件 放入 Menu 菜单组件 中 ;
// 创建菜单项并添加到菜单中
MenuItem menuItem = new MenuItem("打开");
// 为菜单项添加 ActionListener 监听器
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 在此处添加要执行的操作
System.out.println("打开文件");
}
});
menu.add(menuItem);
使用下面的代码 , 可以创建 MenuItem 菜单项组件 之间的分割线 ;
MenuItem menuItem7 = new MenuItem("-");
menu2.add(menuItem7);
创建 MenuItem 菜单项组件时 , 传递第二个参数 MenuShortcut 对象 , 可以设置 快捷键 , 设置后 , 快捷键会自动显示在 菜单项 中 ;
使用快捷键也可以触发 ActionListener 监听器 ;
MenuItem menuItem8 = new MenuItem("注释", new MenuShortcut(KeyEvent.VK_Q, true));
menu3.add(menuItem8);
// 为菜单项添加 ActionListener 监听器
menuItem8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("注释");
}
});
代码示例 :
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class MenuExample {
public static void main(String[] args) {
Frame frame = new Frame("菜单示例");
// 创建菜单栏并添加到 Frame 对象中
MenuBar menuBar = new MenuBar();
frame.setMenuBar(menuBar);
// 创建菜单并添加到菜单栏中
Menu menu = new Menu("文件");
menuBar.add(menu);
// 创建菜单项并添加到菜单中
MenuItem menuItem = new MenuItem("打开");
// 为菜单项添加 ActionListener 监听器
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 在此处添加要执行的操作
System.out.println("打开文件");
}
});
menu.add(menuItem);
MenuItem menuItem2 = new MenuItem("保存");
menu.add(menuItem2);
MenuItem menuItem3 = new MenuItem("另存为");
menu.add(menuItem3);
// 创建菜单并添加到菜单栏中
Menu menu2 = new Menu("编辑");
menuBar.add(menu2);
// 创建菜单项并添加到菜单中
MenuItem menuItem4 = new MenuItem("自动换行");
menu2.add(menuItem4);
MenuItem menuItem5 = new MenuItem("复制");
menu2.add(menuItem5);
MenuItem menuItem6 = new MenuItem("粘贴");
menu2.add(menuItem6);
MenuItem menuItem7 = new MenuItem("-");
menu2.add(menuItem7);
// 菜单组件 放入 菜单组件
Menu menu3 = new Menu("格式");
menu2.add(menu3);
MenuItem menuItem8 = new MenuItem("注释", new MenuShortcut(KeyEvent.VK_Q, true));
menu3.add(menuItem8);
// 为菜单项添加 ActionListener 监听器
menuItem8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("注释");
}
});
MenuItem menuItem9 = new MenuItem("取消注释");
menu3.add(menuItem9);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
执行结果 :