如何使用Java Swing计时器在每次启动时执行不同的操作?
如何让Swing Timer对象每2秒发射10次,并在每次发射中执行不同的操作?使用:如何使用Java Swing计时器在每次启动时执行不同的操作?,java,swing,timer,Java,Swing,Timer,如何让Swing Timer对象每2秒发射10次,并在每次发射中执行不同的操作?使用: // task one int delay = 2000; Timer swingTimer = new Timer(delay, new ActionListener() { public void actionPerformed(ActionEvent e) { // task two } }); swingTimer.start(); 我只能做两件事。但是我想
// task one
int delay = 2000;
Timer swingTimer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
// task two
}
});
swingTimer.start();
我只能做两件事。但是我想用定时器来执行一段代码,等2秒,再执行另一段代码,再等2秒,再做另一件事,以此类推,完成10个连续的任务。谢谢。在您的
操作执行方法中使用某种计数器来确定您的操作执行到哪个周期。
private int cycle = 0;
//...
Timer swingTimer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
switch (cycle) {
case 0:
// Task #1
break;
case 1:
// Task #2
break;
case 2:
// Task #3
break;
default:
// All done...
((Timer)e.getSource()).stop();
}
cycle++;
}
});
您可以在每个执行的操作结束时设置一个新的非重复计时器
,将其与下一个要执行的操作侦听器
/任务一起播种,但这可能会很快变得混乱
这是这个想法的基本概念。您可以为每个任务设计一个通用的界面
,将它们添加到某种类型的列表
,然后简单地使用列表。删除(0)
以弹出下一个列表
并执行它。您将继续操作,直到列表
为空。在actionPerformed
方法中使用某种计数器来确定您的操作周期
private int cycle = 0;
//...
Timer swingTimer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
switch (cycle) {
case 0:
// Task #1
break;
case 1:
// Task #2
break;
case 2:
// Task #3
break;
default:
// All done...
((Timer)e.getSource()).stop();
}
cycle++;
}
});
private int cycle;
Timer swingTimer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.callMethod(cycle); // controller decides what to do
cycle++;
}
});
您可以在每个执行的操作结束时设置一个新的非重复计时器
,将其与下一个要执行的操作侦听器
/任务一起播种,但这可能会很快变得混乱
这是这个想法的基本概念。您可以为每个任务设计一个通用的界面
,将它们添加到某种类型的列表
,然后简单地使用列表。删除(0)
以弹出下一个列表
并执行它。您将继续,直到列表
为空
private int cycle;
Timer swingTimer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.callMethod(cycle); // controller decides what to do
cycle++;
}
});
并且不要忘记在计时器完成所需的周期数后停止计时器
在计时器完成所需的循环次数后,不要忘记停止计时器。ALLAH RAZI OLSUN。安拉·图图古努·阿尔廷·埃斯丁·阿拉赫·拉齐·奥尔桑。安拉·图图古努·阿尔廷·埃斯丁。