下面是一个Applet程序,其功能是打印一个任意进制的乘法表。要求输入乘法表的进制,点击ok则打印出该乘法表。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
import java.lang.*;
public class ex30 3 extends Applet
private TextField tf;
private Button btn;
public void init()
tf = new TextField(25);
add(tf);
btn = new Button("OK");
add(btn);
resize(250, 200);
public void paint(Graphics g)
try
int n = tf.getText();
int i,j,x=20,y=60;
for(i=0;i<n;i++)
for (j=1; j<=n; j++)
g.drawString(Integer.toString(i)+"*"
+Integer.toString(j)+"="
+Integer.toString(i*j),
i*x,j*y);
catch(NumberFormatException nfe)
g.drawString("error number!",20,50);
public boolean action(Event e, Object o)
if (o == "OK")
repaint();
return true;
else
return false;
ex30_3.html
<HTML>
<HEAD>
<TITLE>ex30_3</TITLE>
</HEAD>
<BODY>
<applet code="ex30_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
参考答案:
Integer.parseInt(tf.getText())
i=1;i<=n;i++
i*50+x,j*20+y
解析:
本题主要考查Applet窗口设计,for循环语句。解题关键是掌握Applet窗口的基本事件机制,会基本的窗口布局,会使用for循环进行程序设计。本题中,第1处,tf对象调用getText()方法返回的是String类的对象,所以需要做类型转换;第2处,注意循环变量的上下界应该分别是1和n如果为0乘法表中会出现0项;第3处,坐标计算公式,只要能使结果正常分布在窗口中即可。