Java Swing-如何使用计时器执行一次性任务?

Java Swing-如何使用计时器执行一次性任务?,java,swing,timer,Java,Swing,Timer,我想不出最好的办法 所以我的程序是一个游戏,用户必须吃东西来减少饥饿感。所以,当按下按钮时,我计划饥饿感每秒减少10次,持续10秒。在此期间,JProgressBar减小,程序内无法执行其他操作 我知道如何做一个重复计时器,但我不知道如何做这样的一次性计时器,并将非常感谢一些指导 非常感谢。您可以使用TimeUnit.SECONDS.sleep1;使当前线程等待一秒钟。只做一次,你就有了你的一次性计时器。因此,如果我将饥饿值每秒递减10,持续10秒,我是否会继续重复时间单位。秒。睡眠1,10次?

我想不出最好的办法

所以我的程序是一个游戏,用户必须吃东西来减少饥饿感。所以,当按下按钮时,我计划饥饿感每秒减少10次,持续10秒。在此期间,JProgressBar减小,程序内无法执行其他操作

我知道如何做一个重复计时器,但我不知道如何做这样的一次性计时器,并将非常感谢一些指导


非常感谢。

您可以使用TimeUnit.SECONDS.sleep1;使当前线程等待一秒钟。只做一次,你就有了你的一次性计时器。因此,如果我将饥饿值每秒递减10,持续10秒,我是否会继续重复时间单位。秒。睡眠1,10次?是的,这将是一个非常简单的解决方案。另外,如果你能帮我解决,我还有最后一个问题。我想暂时更改JLabel的文本,而这一切都在进行中。因此,杰拉贝尔的状态将从饥饿变为丰衣足食。但是,我似乎无法从JButton上的操作侦听器更改JLabel,即使JLabel变量是公共的。请将JLabel设置为私有,然后编写一个同步方法:public synchronized void changeTextString newText{myLabel.setTextnewText;}