首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使Java计时器工作(javax.swing.Timer)

无法使Java计时器工作(javax.swing.Timer)
EN

Stack Overflow用户
提问于 2009-12-04 03:49:10
回答 2查看 1.8K关注 0票数 0

所以我试着学习javax.swing.Timer是如何工作的,但我不能让它做一个简单的操作。基本上,我所要做的就是让系统每秒打印出"test2“,但似乎从未调用过actionPerformed方法。我做错了什么?

代码语言:javascript
复制
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class Main 
{
    public static void main(String[] args)
    {
        System.out.println("test 1");

        final Other o = new Other();

        class TimerListener implements ActionListener
        {
            public void actionPerformed(ActionEvent e) 
            {
                System.out.println("test2");
            }               
        }
        //test
        System.out.println("test 3");

        ActionListener listener = new TimerListener();

        //test
        System.out.println("test 4");

        final int DELAY = 1000;
        Timer t = new Timer(DELAY, listener);

        //test
        System.out.println("test 5");

        t.start();

        //test
        System.out.println("test 6");
    } 
}

这是上面的代码产生的输出:

测试1测试3测试4测试5测试6

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-04 03:55:17

在计时器有机会触发之前,程序正在退出。添加一个Thread.currentThread().sleep(10000),您将看到计时器事件。

票数 0
EN

Stack Overflow用户

发布于 2009-12-04 04:04:45

计时器不会强制程序在main方法结束后继续运行。如果不启动另一个线程运行或确保主线程运行足够长的时间,定时器可能永远不会触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1842429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档