问题 问答题

下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下:

import java.awt.*; import java.applet.*; import java.awt.image.*; /* <applet code="ex24_3.class" width=800 height=400 > </applet> */ public class ex24_3 extends Applet implements Runnable { Image[] images=new Image[4]; Image image; int IMG onClick=over(this) title=放大Number=3; int currentImage=0; Thread thisThread; public void init(){ for (int x=0;x<IMG onClick=over(this) title=放大Number;x++){ images[x]= getImage(getCodeBase(),"IMG onClick=over(this) title=放大"+x+".gif"); } image=images[0]; } public void paint(Graphics g){ g.drawImage(image[0],0,0,null); } public void update(Graphics g){ paint(g); } public void start(){ thisThread = new Thread(this); thisThread.start(); } public void stop(){ thisThread.stop(); thisThread=null; } public void run(){ while(true){currentImage++;currentImage=IMG onClick=over(this) title=放大Number;image=images[IMG onClick=over(this) title=放大Number];repaint();try{ thisThread.sleep(100); } catch (Exception e){} } } } ex24_3.html <HTML> <HEAD> <TITLE>ex24_3</TITLE> </HEAD> <BODY> <applet code="ex24_3.class" width=800 height=400 > </applet> </BODY> </HTML>

答案

参考答案:

解析:g.drawImage(image,0,0,null) currentImage%=IMG onClick=over(this) title=放大Number image=images[currentImage] 本题主要考查Applet图形绘制和多线程相结合制作动画的综合应用。解题关键是熟悉Applet生命周期,熟悉线程的编程模式,熟悉Graphics类的基本绘图方法和图像处理方法等。本题中,第1处,应该是绘制当前的1幅图片,image对象定义的就是这一幅图像;第2处,将currentImage对imgNumber取模并把结果返回给currentImage,作为当前图像的索引值;第3处,将由currentImage索引的图像数组中的对象的值赋给image对象,用于显示。

单项选择题
单项选择题