首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javax.swing.Timer的奇怪行为

javax.swing.Timer的奇怪行为
EN

Stack Overflow用户
提问于 2012-02-06 03:41:15
回答 4查看 214关注 0票数 0

如果使用以下代码,则在main中

代码语言:javascript
复制
Timer timer = new Timer(200, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("boo");
    }
});

timer.start();
Thread.sleep(3000);

boo将像预期的那样每200毫秒打印一次。

代码语言:javascript
复制
Timer timer = new Timer(200, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("boo");
    }
});

timer.start();

不会输出任何内容!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-06 03:44:38

假设您显示的代码是main()格式的。当main()返回时,程序在计时器线程有机会运行之前退出。休眠使JVM有足够的时间创建另一个线程,然后允许JVM继续运行。

票数 3
EN

Stack Overflow用户

发布于 2012-02-06 03:44:56

会不会是Thread.sleepmain线程上,而在第二种情况下没有输出任何东西的原因是main线程消失,程序退出?

票数 1
EN

Stack Overflow用户

发布于 2012-02-06 03:48:04

这是完整的程序吗(这是main方法中唯一的代码)吗?如果是,那么在第二种情况下,程序在计时器停止之前结束,所以它不会打印任何东西,因为程序几乎立即结束。

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

https://stackoverflow.com/questions/9152350

复制
相关文章

相似问题

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