请完成下列Java程序:实现2个下拉式菜单,一个包含exit菜单项,另一个包含item1和item2共2个菜单项。要求选择exit菜单项时,退出程序;选择item1菜单项之后,item1项变为不可选而item2可选;选择item2菜单项时,item2变为不可选而item1可选。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下:
import java.awt.*; import java.awt.event.*; public class ex18_2 extends Frame implements ActionListener { private choiceHandler ch; private MenuItem item1; private MenuItem item2; public static void main(String[] arg) { new ex18_2 ( ); } ex18_2 ( ) {setTitle("ex18_2");MenuItem item;ch = new choiceHandler();MenuBar mb = new MenuBar();Menu fm = new Menu("File");fm.addSeparator();fm.add(item = new MenuItem("Exit"));item.addActionListener(this);fm.add(item);mb.add(fm);Menu mm = new Menu("Choice");mm.add(item1 = new MenuItem("item1"));item1.addActionListener(ch);mm.add(item2 = new MenuItem("item2"));item2.addActionListener(ch);mb.add(mm);setMenuBar(mb);setSize(200,200);show(); } public void actionPerformed(ActionEvent ae) {if(ae.getActionCommand().equals("Exit")) System.exit(0);else System.out.println(ae.getActionCommand()); } class choiceHandler implements ActionListener {public void actionPerformed(ActionEvent ae) { String strCommand = ae.getActionCommand(); if(_________________) { item2.setEnabled(true); item1.setEnabled(false); } else if(______________________) { item2.setEnabled(false); item1.setEnabled(true); } } }}
参考答案:
解析:strCommand.equals(”item1”) strCommand.equals(”item2”) 本题主要考查AWT建立菜单的基本方法和事件处理机制,以及控制菜单项的可选与否。解题关键是熟悉菜单的创建和设置方法,掌握菜单的事件处理模型,通过事件处理机制实现对菜单项的设置。本题中,第1个空,判断菜单命令是由选择 item1项发出的,则进行相关的设置;第2个空,判断菜单命令是由选择item2项发出的,则进行相关的操作。