题目:
创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个菜单项“打开x”和“打开y”,“保存”项就是普通的菜单项。“编辑”菜单就一个菜单项“复制”。“查看”有两个菜单项“停止”和“刷新”。在菜单及菜单项上添加合适的快捷键。
代码:
package java12;
import java.awt.event.*;
import javax.swing.*;
public class Brower {
public static void main(String[] args) {
JFrame frame = new JFrame("浏览器");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口关闭方式
frame.setSize(300, 200);
frame.setVisible(true);
JMenuBar menubar=new JMenuBar();
JMenu menu1 = new JMenu("文件(F)");
JMenu menu2 = new JMenu("编辑(E)");
JMenu menu3 = new JMenu("查看(L)");
menu1.setMnemonic('F'); //设置菜单的快捷键为字母键F,需按下Alt键和字母键F
menu2.setMnemonic('E');
menu3.setMnemonic('L');
JMenu item1=new JMenu("打开(O)");
JMenuItem item2=new JMenuItem("保存(S)");
JMenuItem item3=new JMenuItem("复制(C)");
JMenuItem item4=new JMenuItem("停止(P)");
JMenuItem item5=new JMenuItem("刷新(R)");
menu1.setMnemonic('O');
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
item5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
JMenuItem item11 = new JMenuItem("打开X");
JMenuItem item12 = new JMenuItem("打开Y");
item1.add(item11);
item1.add(item12);
menu1.add(item1);
menu1.addSeparator();
menu1.add(item2);
menubar.add(menu1);
menu2.add(item3);
menu2.addSeparator();
menubar.add(menu2);
menu3.add(item4);
menu1.addSeparator();
menu3.add(item5);
menubar.add(menu3);
frame.setJMenuBar(menubar);
frame.validate();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
import java.awt.event.*;
import javax.swing.*;
public class Brower {
public static void main(String[] args) {
JFrame frame = new JFrame("浏览器");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口关闭方式
frame.setSize(300, 200);
frame.setVisible(true);
JMenuBar menubar=new JMenuBar();
JMenu menu1 = new JMenu("文件(F)");
JMenu menu2 = new JMenu("编辑(E)");
JMenu menu3 = new JMenu("查看(L)");
menu1.setMnemonic('F'); //设置菜单的快捷键为字母键F,需按下Alt键和字母键F
menu2.setMnemonic('E');
menu3.setMnemonic('L');
JMenu item1=new JMenu("打开(O)");
JMenuItem item2=new JMenuItem("保存(S)");
JMenuItem item3=new JMenuItem("复制(C)");
JMenuItem item4=new JMenuItem("停止(P)");
JMenuItem item5=new JMenuItem("刷新(R)");
menu1.setMnemonic('O');
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
item5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
JMenuItem item11 = new JMenuItem("打开X");
JMenuItem item12 = new JMenuItem("打开Y");
item1.add(item11);
item1.add(item12);
menu1.add(item1);
menu1.addSeparator();
menu1.add(item2);
menubar.add(menu1);
menu2.add(item3);
menu2.addSeparator();
menubar.add(menu2);
menu3.add(item4);
menu1.addSeparator();
menu3.add(item5);
menubar.add(menu3);
frame.setJMenuBar(menubar);
frame.validate();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
总结;
向顶层容器中添加组件,有两种等价的方法:一种是直接调用顶层容器的add()方法,另一种是先调用顶层容器的getContentPane()获得内容窗格,然后再调用该内容窗格的add()方法。这两种方法都是放置在内容窗格中。