Example9_2
package sample9_2;
import java.awt.Color;
import java.awt.Container;
/**创建一个带有菜单的窗口
*JMenuBar JMenu JMenuItem(组件)
*/
public class Sample9_2 {
public static void main(String[] args) {
WindowMenu windowmenu = new WindowMenu("带菜单的窗口",200,300,500,400);
Container con = windowmenu.getContentPane();
con.setBackground(Color.GREEN);
}
}
package sample9_2;
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class WindowMenu extends JFrame{
private static final long serialVersionUID = 1L;
JMenuBar menubar;
JMenu menu,subMenu;
JMenuItem item1,item2;
//public WindowMenu() {}
public WindowMenu(String s,int x,int y,int w,int h) {
init(s);
setLocation(x,y);
setSize(w,h);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
void init (String s){
setTitle (s); //菜单的名字
menubar = new JMenuBar(); //给菜单条实例化
menu = new JMenu("菜单"); //给菜单实例化和名字
subMenu = new JMenu("软件项目"); //给子菜单实例化
item1 = new JMenuItem ("Java话题",new ImageIcon("...")); //菜单项实例化
item2 = new JMenuItem ("动画话题",new ImageIcon("..."));
item1.setAccelerator(KeyStroke.getKeyStroke('A'));
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); //快捷键:ctrl+S
menubar.add(menu); //向菜单条中添加菜单
menu.add(item1); //向菜单中添加菜单项
menu.addSeparator();
menu.add(item2);
menu.addSeparator();
menu.add(subMenu); //向菜单中添加子菜单
subMenu.add(new JMenuItem("汽车销售系统",new ImageIcon("..."))); //向子菜单中添加菜单项
subMenu.add(new JMenuItem("农场信息系统",new ImageIcon("...")));
setJMenuBar(menubar);
}
}
**/*编程思路:1.定义菜单系列(menu为菜单,item1是java话题,item2是动画话题,submenu是软件项目,在submenu里添加菜单项)
* 2.方法里,窗口WindowMenu调用了set方法和实现了init方法
* 3.创建init方法,在菜单条中添加菜单,在菜单中添加菜单项
* 4.setAccelerator(KeyStroke.getKeyStroke())作用:设置组合键,它能直接调用菜单项的操作侦听器而不必显示菜单的层次结构。
* 所以用这个方法就能制作我们所要的快捷键了。
* 5.addSeparator()就是在item1与item2中,item2与submenu中加入一条横线。
* */**
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20210508213339182.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzQ3NzgyOQ==,size_16,color_FFFFFF,t_70)