繁体   English   中英

Java在计时器运行之前终止

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM