下面是一个Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将Applet中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使程序能输出正确的结果。 注意:不改动程序结构,不得增行或删行。 import java.applet.*; import java.awt.*; import java.awt.event.*; public class FindMax extends Applet______ { Label result; TextField in1,in2; Button btn; int a=0,b=0,max; public void int() {result=new Label(“请先输入两个待比较的整数”);in1=new TextField(5);in2=new TextField(5);btn=new Button("比较");add(in1);add(in2);add(btn);add(result);btn.addActionListener(this); } Public void actionPerformed(ActionEvent e) {a=in1;b=in2;if(a>b) max=a;else max=b;btn.setText(“两个数中最大值:”+max); } } Findmax.html: <HTML> <HEAD> <TITLE>A Simple Program</TITLE> </HEAD> <BODY> <applet code="FindMax.class"width=800 height=400> </applet> </BODY> </HTML>
参考答案:
解析:implement ActionListener 将a=in1;改为a=Integer.parseInt(in1.getText()); 将b=in2;改为b=Integer.parseInt(in2.getText()); 将btn.setText(“两个数中最大值:”+max);改为result.setText("两个数中最大值:"+max);[讲解] 本题考查文本框、Applet操作和事件处理。按钮可以引发动作事件,当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了ActionListener接口的动作事件监听者。 因此,第1空应该填入的是implement ActionListener。为了接收用户输入的两个整数,需要获得文本框的内容,并将其转化为整数。而a=in1;b=in2;两个赋值语句直接将文本框对象等同于整数,不能得到正确的结果。这两句应该改为a=Integer.parseInt(in1.getText());b=Integer.parseInt(in2.getText());,其中,getText()获得文本框的内容,返回字符串。而Integer.parseInt(String)将字符串对象转换为整数。另外,根据题意,是要在Applet上的“请先输入两个待比较的整数”改为“两个整数中最大值:x”。其中前一个引号中的话是显示在标签中的,因此btn.setText("两个整数中最大值:x"+max);中的操作对象有误,应该将按钮对象btn改为标签对象result。