下面是一个Applet程序,其功能是捕捉用户所按下的键,并将捕捉到的键时间,传给程序,程序再将所按下的字符显示在Applet中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
/*
<applet code="ex15_3.class,, width=800 height=400 >
</applet>
*/
public class ex15_3 extends JApplet
private String str1;
private String str2;
private String str3;
public void init()
str1 = "Character:";
str2 = "Number: ";
str3 = "Key State:";
public void paint(Graphics g)
g.drawString(str1, 20, 30);
g.drawString(str2, 20, 50);
g.drawString(str3, 20, 70);
public boolean keyUp(Event e, int n)
str1 = "Character:" + String.valueOf(n);
str2 = "Number:" + n;
str3 = "Key State:Key Up";
repaint();
return true;
public boolean keyDown(Event e, int n)
str1 = "Character:" + String.valueOf(n);
str2 = "Number:" + n;
str3 = "Key State:Key Down";
repaint();
return true;
ex15_3.html
<HTML>
<HEAD>
<TITLE>ex15_3</TITLE>
</HEAD>
<BODY>
<applet code="ex15 3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
参考答案:Applet
str1="Character:"+ (char)n
str1="Character:"+ (char)n
解析:
本题主要考查Applet窗口中的键盘事件捕捉,以及基本的Applet显示。解题关键是熟悉Applet窗口的基本操作和键盘事件的一般应用。本题中,第一处,错在误用了JApplet这里应该是继承Applet类,而不是JApplet:第二和第三处错误相同,虽然用String类的valueOf()方法在编译的时候不会出错,但是这样显示出来的结果是int类型的n,而题中要求输出的是这个键对应的字符,因此用将int类型转化为char类型。