菜单栏组件添加到 JFrame 窗口后,在窗口的内容显示区域的顶部出现。
实现一个菜单栏主要涉及三种类:
(1)JMenuBar
菜单栏组件JMenuBar:表示一个菜单栏。该组件可以添加菜单,添加的菜单会排成一行。
(2)JMenu
菜单栏JMenu:表示菜单栏上的一个一级菜单。该组件可以添加子菜单,也可以添加菜单,添加的菜单会排成一列。
(3)JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem
表示一级菜单下的一个子菜单项,三者分别表示 普通的子菜单、带复选框的子菜单、带单选按钮的子菜单。
注: JMenu 继承自 JMenuItem,所以一个 JMenu 也可以当做是一个二级子菜单项,通过 JMenu 和 JMenuItem 之间的嵌套,可实现多级子菜单效果。
创建组件语法:
JMenuBar name=new JMenuBar(); //创建菜单栏
JMenu name=new JMenu("菜单"); //创建菜单
JMenuItem name=new JMenuItem("子菜单"); //创建子菜单
常用快捷键:
setMnemonic('快捷键') ; //设置一个快捷键,按住alt+快捷键可以快捷点击
setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,KeyEvent.CTRL_MASK)); //添加热键
代码实例
示例一:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
public class menu {
public static class MainForm extends JFrame {
private void init(String title){
setTitle(title);//设置窗口标题
JMenuBar menuBar = new JMenuBar();//创建菜单栏对象
setJMenuBar(menuBar);// 将菜单栏对象添加到窗体的菜单栏中
JMenu menu1 = new JMenu("菜单1");// 创建菜单对象
menuBar.add(menu1);//将菜单对象添加到菜单栏对象中
JMenuItem item1 = new JMenuItem("菜单选项1");//创建子菜单对象
menu1.add(item1);//将子菜单对象添加到一级菜单对象中
menu1.addSeparator();//在菜单项中间添加分界线
JMenu menu2 = new JMenu("菜单2");
menuBar.add(menu2);
JMenuItem item2 = new JMenuItem("菜单选项2");
menu1.add(item2);
menu2.addSeparator();
JMenu submenu = new JMenu("子菜单1");
menu1.add(submenu);
submenu.add(new JMenuItem("子菜单1"));
submenu.add(new JMenuItem("子菜单2"));
//item1.setAccelerator(KeyStroke.getKeyStroke('A'));
item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,KeyEvent.CTRL_MASK));//添加热键
}
public MainForm(String title,int posX,int posY,int width,i