【例 11-15】小应用程序示意窗口有菜单条的实现方法。设有一个按钮,当按钮处于打开窗口状态时,单击按钮将打开一个窗口,窗口设有一个菜单条,有两个菜单,每个菜单又各有三个菜单项。当一个菜单项被选中时,菜单项监视方法在文本框中显示相应菜单项被选中字样。 import java.applet.* import javax.swing.*; import java.awt.*; import java.awt.event.*; class MenuWindow extends JFrame implements ActionListener{ public static JtextField text; private void addItem(JMenu Menu,String menuName,ActionListener listener){ JMenuItem anItem = new JMenuItem(menuName); anItem.setActionCommand(menuName); anItem.addActionListener(listener); Menu.add(anItem); } public MenuWindow(String s,int w,int h){ setTitle(s); Container con = this.getContentPane(); con.setLayout(new BorderLayout()); this.setLocation(100,100); this.setSize(w,h); JMenu menu1 = new JMenu("体育"); addItem(menu1," 跑步",this); addItem(menu1," 跳绳",this); addItem(menu1,"打球",this); JMenu menu2 = JMenu("娱乐"); addItem(menu2,"唱歌",this); addItem(menu2,"跳舞",this); addItem(menu2,"游戏",this); JMenuBar menubar = new JMenuBar(); text = new JTextField(); menubar.add(menu1); menubar.add(menu2); setJMenuBar(MenuBar); con.add(text,BorderLayout.NORTH); } public void actionPerformed(ActionEvent e){ text.setText(e.getActionCommand()+"菜单项被选中!"); } } public class Example6_5 extends Applet implements ActionListener{ MenuWindow window; JButton button; boolean bflg; public void init(){ button = new JButton("打开我的体育娱乐之窗");bflg =true; window = new MenuWindow("体育娱乐之窗",100,100); button.addActionListener(this); add(button); } public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ if(bflg){ window.setVisible(true); bflg = false; button.setLabel("关闭我的体育娱乐之窗"); } else{ window.setVisible(false); bflg = true; button.setLabel("打开我的体育娱乐之窗"); } } } }