Java 使用定时器制作动画?
我试图理解如何使用一种基本的动画。我可以使用线程,但是很多人告诉我不要在java中使用多线程。我想我会做一些类似的事情:Java 使用定时器制作动画?,java,timer,Java,Timer,我试图理解如何使用一种基本的动画。我可以使用线程,但是很多人告诉我不要在java中使用多线程。我想我会做一些类似的事情: Timer t = new Timer(10, somthing); t.start(); x++; t.end(); 这是我对它的基本理解。有人可以链接一个教程或解释如何让时间每隔10秒或更长时间做一件事吗?首先,为什么告诉你不要使用多线程?对于现代计算机来说,这似乎是一个相当有限的规则 似乎你想安排一个任务以给定的速率发射。您应该查看Timer\schedule()。它
Timer t = new Timer(10, somthing);
t.start();
x++;
t.end();
这是我对它的基本理解。有人可以链接一个教程或解释如何让时间每隔10秒或更长时间做一件事吗?首先,为什么告诉你不要使用多线程?对于现代计算机来说,这似乎是一个相当有限的规则 似乎你想安排一个任务以给定的速率发射。您应该查看
Timer\schedule()
。它允许您传入一个任务,以及为该任务计时的一些配置
public class TimerDemo {
public static void main(String[] args) {
// creating timer task, timer
TimerTask tasknew = new TimerSchedulePeriod();
Timer timer = new Timer();
// scheduling the task at interval
timer.schedule(tasknew, 0, 10);
}
// this method performs the task
public void run() {
System.out.println("timer working");
}
}
源代码:如果您想使用摆动计时器,可以制作如下:
Timer timer = new Timer();
//delayed timer
timer.schedule(new TimerTask() {
@Override
public void run() {
//do your code after a delay (delayInMillis)
}
}, delayInMillis);
//repeating timer
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//do your code every repeatTimeInMillis
}
}, 0, repeatTimeInMillis;
我对动画的建议是创建一个整数,在这个整数中,您可以随计时器进行更改。绘制动画时,如果int是特定变量,则可以绘制特定图像。(使用if-else语句或switch语句)
我希望我能帮上忙:D“不要在Java中使用多线程”听起来不对。这个建议可能是针对Swing和在事件调度线程上运行应用程序/进行绘制。在这种情况下,您可能希望使用java.swing.Timer
制作动画。基本结构是
Timer( int deleyInMillis, ActionListener listener )
其中,delayInMillis
是计时器触发的ActionEvents
之间延迟的毫秒数。ActionListener
将是ActionEvents
的侦听器列表。因此,每个delayInMillis
都将调用actionPerformed
方法
所以你可以做一些像
Timer timer = new Timer(10000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if (someStoppingCondition) {
((Timer)e.getSource()).stop();
} else {
// do something every ten seconds.
}
}
});
timer.start();
你可以在网站上看到更多。您还可以看到一组示例和