概述
我想在一个类中使用一个函数,它将启动和停止使用布尔值链接到int值的定时器。因此,例如,如果我启动了一个int为0的计时器,那么这将是timer0,如果它是3,那么timer3等等。
我遇到的问题是计时器似乎开始确定,但是当我向他们发送一个假布尔来阻止他们时,他们将继续运行,所以我需要知道如何正确地阻止他们。
在Class.java中,代码是:
public void Event(final int value, boolean run, int time){
if(run){
System.out.println(run);
Timer timer = new Timer();
timer.schedule( new TimerTask() {
public void run() {
// The needed code will go here
System.out.println(value + " Event run");
}
}, 0, time); // Every second
} else {
}
}然后对于我的Main.java代码是:
System.out.println("Start Timer 0 Event");
r.Event(0, true, 1000);
System.out.println("Start Timer 1 Event");
r.Event(1, true, 250);
System.out.println("Start Timer 2 Event");
r.Event(2, true, 250);
r.Event(0, false, 1000); // Not Working as i need
System.out.println("Stop Timer 0 Event");基本上我只想让事件在每一定时间重复,直到我阻止它们,并且可能有许多事件在一起运行。如果定时器不是这样做的最好方法,那么替代方案会很好,但它需要按照描述的相同方式工作。
这里要求的是我的定时器的可运行代码。
MyClass.java:
package com.z;
import java.awt.*;
import java.util.*;
import java.util.TimerTask;
public class MyClass {
//Name: Event (BROKEN)
public void Event(final int value, boolean run, int time){
Timer timer = new Timer("" + value, true);
if(run){
System.out.println(run);
timer.schedule( new TimerTask() {
public void run() {
// Code here
System.out.println(value + " Event run");
}
}, 0, time); // Every second
}
if (!run) {
timer.cancel();
}
}
}Example.java:
package com.z;
import java.awt.*;
import java.awt.event.*;
public class Example {
public static void main(String[] args) {
MyClass r = new MyClass();
// Event (BROKEN)
System.out.println("Start Timer 0 Event");
r.Event(0, true, 1000);
System.out.println("Start Timer 1 Event");
r.Event(1, true, 250);
r.Event(0, false, 1000);
System.out.println("Stop Timer 0 Event");
}
}
最后
以上就是朴实机器猫为你收集整理的java 计时器停止_在Java中停止计时器事件的全部内容,希望文章能够帮你解决java 计时器停止_在Java中停止计时器事件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复