这是学校的作业,这是我老师写的:
将一个图像加载到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();
}
}
}
}
任何帮助都将不胜感激。
1条答案
按热度按时间uubf1zoe1#
看起来您的代码正在执行您所描述的“多次重新绘制自身,每次绘制之间的间隔越来越短”的操作。
关键是,当达到1而不是0时,需要重置值,因为循环在达到0之前停止,因为
&& num>0
:现在它应该根据需要循环。