窗口
测试类
代码如下(示例):
package com.vetor.example;
public class Example9_2 {
public static void main(String[] args) {
WindowMenu win = new WindowMenu("带菜单的窗口",20,30,200,190);
}
}
窗口类
代码如下(示例):
package com.vetor.example;
import static javax.swing.JFrame.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class WindowMenu extends JFrame{
/**
* 声明部分:
* 菜单条
* 菜单
* 菜单项
*/
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("a.gif"));
item2 = new JMenuItem("动画话题",new ImageIcon("b.gif"));
JMenuItem item3 = new JMenuItem("动画话题",new ImageIcon("b.gif"));
item1.setAccelerator(KeyStroke.getKeyStroke('A'));//设置快捷键为‘A’
item3.setAccelerator(KeyStroke.getKeyStroke('S'));
//设置ctrl-s快捷键
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
menu.add(item1);
menu.addSeparator();//设置水平线,分开来
menu.add(item2);
menu.addSeparator();
menu.add(item3);
menu.add(subMenu);
//添加一个带有文字和图片的菜单项
subMenu.add(new JMenuItem("汽车销售系统",new ImageIcon("c.gif")));
subMenu.add(new JMenuItem("农场信息系统",new ImageIcon("d.gif")));
menubar.add(menu);
setJMenuBar(menubar);
}
}
总结
init()方法中有三部分
第一部分:菜单条以及菜单项的实例化
第二部分:给这些标签设置快捷键
第三部分:添加item到menu中去
分隔开用:menu.addSeparator();