如何制作计时器?

时间:2013-01-22 08:07:20

标签: java timer

我想制作等待400 MSc的Timer,然后打印“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();

但据我所知,这绝对不是一个好方法,因为这种Timer适用于Swing。如何以正确的方式做到这一点? (不使用Thread.sleep()

4 个答案:

答案 0 :(得分:10)

Timer t = new Timer();
t.schedule(new TimerTask() {

            @Override
            public void run() {
                System.out.println("Hi!");

            }
        }, 400);

答案 1 :(得分:1)

您可以考虑Quartz调度程序,它是一个真正可扩展,易于学习和配置的解决方案。您可以查看官方网站上的教程 http://quartz-scheduler.org/documentation/quartz-2.1.x/quick-start

答案 2 :(得分:1)

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()) );
    }

}

答案 3 :(得分:0)

TimeUnit.MILLISECONDS.sleep(150L);

是另一种选择;

您还可以查看this问题

建议使用等待的while循环 或ScheduledThreadPoolExecutor