[英]Java Terminating Before Timer Runs
我有以下代码
new Timer(300, this).start();
和这个
public void actionPerformed(ActionEvent e) {
//do something
}
在实现ActionListener
的同一个类中。
问题是程序在actionPerformed
的代码有机会运行之前终止。 至少我认为这就是发生的事情!
当它无关时,如何告诉java继续运行?
谢谢!
编辑 :这是一个javax.swing.Timer
Timer
使用守护进程Thread
- 它们不会阻止程序退出。
您使用javax.swing.Timer
但它看起来不像您在Swing
环境中运行。
您需要使用java.util.Timer
并确保使用new Timer(false)
创建它。 这将使用非守护进程Thread
来构建它,这将使应用程序保持打开状态。
这意味着您需要在Timer
上调用cancel()
以退出应用程序。
只要所有非守护程序线程都完成,Java程序就会终止。 因此,保持主线程运行或至少有一个非守护程序线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.