[问答题] 下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: ![[问答题] 下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 [问答题] 下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。](/uploadfile/member/20180926/1537955709.jpg)
import java.awt.*; import java.applet.*; import java.awt.image.*; 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; }
参考答案:
问题解析:
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对象,用于显示。

![[问答题] 下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 [问答题] 下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。](http://www.mshxw.com/aiimages/31/249841.png)
