关于Thread的逻辑的问题

时间:2013-07-19 21:47:47

标签: java multithreading swing

如何让系统每5秒自动运行一次方法。由于这个框架不是焦点,它可以是具有焦点的JDialog,因此可以执行该过程吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

使用Swing Timer。创建一个,为它添加一个动作侦听器,然后启动它,并定期调用动作侦听器。例如:

Timer timer = new Timer(500);
timer.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        // this runs every 500 milliseconds
    }
}
timer.start()

答案 1 :(得分:0)

您可以生成一个新线程并使其在循环中休眠5秒。

但是如果你有更复杂的需求,你宁可选择像Quartz这样的调度库(Spring也有)。 因为你不想生成100个线程,所有人都在睡5秒钟,但你宁愿让1个调度程序线程触发多个工作线程。