【发布时间】:2021-10-29 12:41:46
【问题描述】:
private int limitTime = 10;
void timer() {
limitTime = 10;
Thread thread = new Thread() {
@Override
public void run() {
stop = false;
while(!stop) {
System.out.println("Time >> " + limitTime);
//Platform.runLater(()->{
lbLimitTime.setText(Integer.toString(limitTime));
limitTime -= 1;
//});
if(limitTime < 1) stop = true;
try { Thread.sleep(1000); } catch (InterruptedException e) {}
}
};
};
thread.setDaemon(true);
thread.start();
}
我们正在使用 JavaFX 创建 GUI 程序。
我尝试为每次点击设置一个 10 秒的计时器。
如果在 10 秒前点击重复计时器功能,时间会快两倍。
你觉得我不明白哪一部分?
每次点击时都会调用计时器函数。
当点击发生时,我想初始化现有的定时器并正常流动1秒。
【问题讨论】:
-
例如,每次点击按钮时,您是否运行计时器功能?
-
不要产生不受控制的线程。使用执行器服务
-
是的,没错。点击后,功能运行10秒后正常运行。
标签: java multithreading timer