Java 为什么不是';我的计时器坏了吗?

Java 为什么不是';我的计时器坏了吗?,java,timer,Java,Timer,我试图制作一个计时器,每秒输出单词hello,但似乎当我输入延迟值1000时,它会输出hello一次,然后终止。我做错了什么?感谢大家的帮助 JVM在计时器启动之前退出 尝试: 看看有什么不同 或者更好的方法是在事件调度线程(EDT)上执行代码。所有GUI代码都应在EDT上执行。通过使用swingutities.invokeLater()确保在代码执行时已创建EDT: t.setInitialDelay(0); t.start(); 有关EDT的更多信息,请阅读上Swing教程的部分。我尝试过

我试图制作一个计时器,每秒输出单词hello,但似乎当我输入延迟值1000时,它会输出hello一次,然后终止。我做错了什么?感谢大家的帮助

JVM在计时器启动之前退出

尝试:

看看有什么不同

或者更好的方法是在事件调度线程(EDT)上执行代码。所有GUI代码都应在EDT上执行。通过使用swingutities.invokeLater()确保在代码执行时已创建EDT:

t.setInitialDelay(0);
t.start();

有关EDT的更多信息,请阅读上Swing教程的部分。

我尝试过它,但现在唯一的区别是它输出两个Hello而不是一个Helloone@monkey6991,在使用JDK 7的Windows 7上运行正常,但是,我的第二个建议是更好的答案,应该使用。我正在运行Win 8,但它对我不起作用,至于你给我的第二个选择,我是一个java程序员初学者,我对定时器没有太多的知识classes@monkey6991,它与计时器没有任何关系。这与线程有关。有关详细信息,请阅读教程链接。@monkey6991,检查
Frame.dispose()方法的API。在方法描述中,您将找到一个关于
AWT线程问题的链接
,该链接将详细解释JVM中的不同线程,以及为什么有时会关闭,而有时不会关闭。
t.setInitialDelay(0);
t.start();
EventQueue.invokeLater(new Runnable()
{
    public void run()
    {
          new TimerProgram();
    }
});