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

admin2013-02-25  88

问题 下面是一个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对象,用于显示。
转载请注明原文地址:https://kaotiyun.com/show/NR2p777K
0

最新回复(0)