我正在尝试使用Java Swing Timer创建一个循环来不断循环一组图像(i1,i2,i3 ....其中n是图像总数)。
每个图像的大小完全相同,必须显示在标签上(例如,l1)。
每张图像之间必须有10秒的延迟。
不知道如何在不使用Java TumbleItem applet的情况下解决这个问题>对于像我这样的简单实现来说,这似乎太复杂了。 (在学校的在线店面应用程序上显示特价优惠海报)。
我愿意以任何其他方式实现这一目标。
非常感谢帮助。提前谢谢!
答案 0 :(得分:1)
我尝试使用Java Swing Timer创建循环以不断循环显示一组图像
当您使用计时器时,您不会使用循环。当计时器触发时,您只需更改图像即可。因此,您需要保留要显示的图像列表和当前显示图像的索引。
不知道如何在不使用Java TumbleItem applet的情况下解决这个问题>对于像我这样的简单实现来说,它看起来太复杂了
这有多复杂?它显示一系列图像,接近您想要的图像。
是的,有一些额外的代码可以加载图像,并且在加载所有图像之前不会启动动画。因此,您可以轻松地简化代码,而不用担心。此外,还有一些代码可以从左到右,然后从右到左进行动画制作。您也不需要这部分代码。此外,还有用于配置动画速度的代码。你可以再次硬编码。
因此,如果您从该示例开始然后简化代码,您将获得一个简单的解决方案。试一试,然后在遇到问题时发布代码。
答案 1 :(得分:-1)
这很简单。使用这样的计时器:
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
//codehere
}
}, 0, delayInMillis)
使用可以使用整数在图像中指定。
public int image = 1;
在run()函数中,使用它在图像之间切换
if(image = 1) {
image = 2;
} else if(image = 2) {
image = 3;
} if(image = 3) {
image = 0;
}
现在,无论您在何处绘制图像,请使用:
if(image == 1) {
//draw first image
} else if(image == 2) {
//draw second image
} else if(image == 3) {
//draw third image
}