前言:这是我做的第一个真正的挥杆项目。
我有一个 swing 程序,其中一个 JButton 应该退出该程序。该按钮会触发 this.dispose();。当我点击这个 JButton 时,它does使窗口完全消失,但查看调试器,程序本身仍在运行。
我的主要方法仅包括:
public static void main (String[] args)
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new StartupGui().setVisible(true);
}
});
}
我的退出按钮看起来像操作按钮:
private void exitButtonActionPerformed(java.awt.event.ActionEvent evt)
{
this.dispose();
}
我也尝试过使用退出按钮:
private void exitButtonActionPerformed(java.awt.event.ActionEvent evt)
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
dispose();
}
});
}
按下退出按钮后查看调试器,我看到以下内容(并且仅以下内容):
Daemon Thread [AWT-XAWT] (running)
Thread [AWT-Shutdown] (running)
Thread [AWT-EventQueue-0] (running)
Thread [DestroyJavaVM] (running)
谁能指出正确的方向,为什么程序在此之后没有关闭?我已经进行了一些谷歌搜索,但到目前为止还没有取得任何进展。如果您需要更多信息,请告诉我
谢谢 :)
Because 处置()方法仅释放资源。
该文档有一个
Note:当 Java 虚拟机 (VM) 内的最后一个可显示窗口被释放时,VMmay终止。看AWT 线程问题了解更多信息。
你注意到了吗may?
上面的链接为您提供了有关该项目的详细信息自动关机特征。您可以阅读更多相关内容,或者您可以通过替换来简单地解决此问题this.dispose()
with System.exit(0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)