Java----如何在窗口中创建菜单
JMenuBar
,菜单栏。菜单栏组件添加到 JFrame 窗口后,在窗口的内容显示区域的顶部出现。实现一个菜单栏主要涉及三种类:
(1)JMenuBar
表示一个菜单栏。
(2)JMenu
表示菜单栏上的一个一级菜单。
(3)JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem
表示一级菜单下的一个子菜单项,三者分别表示 普通的子菜单、带复选框的子菜单、带单选按钮的子菜单。
PS: JMenu 继承自 JMenuItem,所以一个 JMenu 也可以当做是一个二级子菜单项,通过 JMenu 和 JMenuItem 之间的嵌套,可实现多级子菜单效果。
代码演示:
package stu1; 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); 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,int height) { init(title); setLocation(posX,posY); setSize(width,height); setVisible(true); setResizable(true); } public static void main(String[] args){ int x=0,y=0,w=1000,h=1000; MainForm windows1 = new MainForm("一个小窗",x,y,w,h); MainForm windows2 = new MainForm("一个小小窗",x,y,w,h); Container container= windows1.getContentPane(); container.setBackground(Color.darkGray); windows1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); windows2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } } }
运行截图: