java—有没有一种方法可以在画布循环中生成图像,并一次又一次地重新绘制它们自己?

hc2pp10m  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(296)

这是学校的作业,这是我老师写的:
将一个图像加载到jcanvas中,并让它自己重新绘制多次,每次绘制之间的间隔越来越短。一旦你有了100张图片,清除屏幕,重新开始。
这是我目前掌握的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
class MovingImages{

  public static void main(String[]args){

    JFrame frame = new JFrame("Printing Images");
    frame.setSize(800,600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JCanvas canvas = new JCanvas();
    frame.add(canvas);
    frame.setVisible(true);

    int x = 0;
    int y = 0;
    int num = 100;
    BufferedImage image = canvas.loadImage("Earth.png");

    while(num<=100 && num>0){

      canvas.drawImage(image,x++,y++);

      num--;
     canvas.sleep(num);

   if (num==0){

    canvas.clear();
  }

   }
  }
 }

任何帮助都将不胜感激。

uubf1zoe

uubf1zoe1#

看起来您的代码正在执行您所描述的“多次重新绘制自身,每次绘制之间的间隔越来越短”的操作。
关键是,当达到1而不是0时,需要重置值,因为循环在达到0之前停止,因为 && num>0 :

//Change the number to 1 not 0:
if (num==1){           
    canvas.clear();

    //Make sure you reset the values otherwise it will not loop again:
    x = 0;
    y = 0;
    num = 100;
}

现在它应该根据需要循环。

相关问题