Java 如何制作计时器?
我想制作一个Java 如何制作计时器?,java,timer,Java,Timer,我想制作一个定时器,等待400 MSc,然后去打印“hi!”(例如)。我知道如何通过javax.swing.Timer ActionListener action = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("hi!"); } }; 加上: timer = new Timer(0,
定时器
,等待400 MSc,然后去打印“hi!”(例如)。我知道如何通过javax.swing.Timer
ActionListener action = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("hi!");
}
};
加上:
timer = new Timer(0, action);
timer.setRepeats(false);
timer.setInitialDelay(400);
timer.start();
但我知道这肯定不是一个好方法,因为这种
计时器是用于Swing工作的。如何以正确的方式做到这一点?(不使用Thread.sleep()
)时间单位.毫秒.睡眠(150L)代码>
是另一种选择
你们也可以看看这个问题
这建议使用一个只需等待的while
循环
或者一个你可以考虑石英调度器,它是一个可扩展的、易于学习和配置的解决方案。您可以在官方网站上查看教程。
还有java.util.Timer
我不知道如何使用它?你到底想做什么?也许使用作业框架对您来说是一个更好的解决方案,这取决于您需要使用它做什么。您是对的,但最后我只想运行一个Runnable
,不需要任何复杂的工作为什么不使用util.Timer?这取决于您必须做什么。如果您需要一个涉及日期、时间等的复杂条件,最好使用Quartz,因为它有一个非常灵活的调度器。您可以建立条件,如每月的每个星期三或每月的最后一天12:00。它还可以自动重复一项作业多次,例如每小时重复一次,持续5小时。另一方面,对于一个简单的计时器,我也会使用util.timer。@Soheil thx获取该信息;)我是Java新手,又学了点东西=)
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("Hi!");
}
}, 400);
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class currentTime {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println( sdf.format(cal.getTime()) );
}
}