创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个菜单项“打开x”和“打开y”,“保存”项就是普通的菜单项。“编辑”菜单就一个菜单项“复制”。“查看”有两个菜单项“停止”和“刷新”。在菜单及菜单项上添加合适的快捷键。
public class WindowTest {
public static void main(String[] args) {
Window window=new Window("浏览器");
window.setSize(400,300);
window.setLocation(120,120);
}
}
import javax.swing.*;
import java.awt.*;
public class Window extends JFrame {
JMenuBar menubar;
JMenu menu1,menu2,menu3,itemOpen;
JMenuItem itemSave,itemCopy,itemStop,itemRefresh,item1,item2;
Window(String s)
{
init(s);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(String s) {
setTitle(s);
menubar=new JMenuBar();
menu1=new JMenu("文件");
menu2=new JMenu("编辑");
menu3=new JMenu("查看");
menu1.setMnemonic('F');
menu2.setMnemonic('E');
menu3.setMnemonic('L');
itemOpen=new JMenu("打开");
itemSave=new JMenuItem("保存");
itemCopy=new JMenuItem("复制");
itemStop=new JMenuItem("停止");
itemRefresh=new JMenuItem("刷新");
itemOpen.setMnemonic('O');
KeyStroke cutkey=KeyStroke.getKeyStroke('S');
itemSave.setAccelerator(cutkey);
cutkey=KeyStroke.getKeyStroke('C');
itemCopy.setAccelerator(cutkey);
cutkey=KeyStroke.getKeyStroke('T');
itemStop.setAccelerator(cutkey);
cutkey=KeyStroke.getKeyStroke('R');
itemRefresh.setAccelerator(cutkey);
item1=new JMenuItem("打开(x)");
item2=new JMenuItem("打开(y)");
cutkey=KeyStroke.getKeyStroke('X');
item1.setAccelerator(cutkey);
cutkey=KeyStroke.getKeyStroke('Y');
item2.setAccelerator(cutkey);
itemOpen.add(item1);
itemOpen.add(item2);
menu1.add(itemOpen);
menu1.add(itemSave);
menu2.add(itemCopy);
menu3.add(itemStop);
menu3.add(itemRefresh);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
setJMenuBar(menubar);
}
}
总结:添加组件时要从小到大依次添加。