我一直在搜索这个主题,但从来没有对任何答案感到满意,所以最后在这里问一个问题:)。无论如何,
从这个类似的post可以清楚地看出,dispose()
并未终止所有进程,并且即使在task manager
之后仍然保留在JFrame
中(AWT进程未完全终止) } 关闭了。
所以,我的问题是: -
this.dispose()
会清除每个子进程吗?或 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
代替此工作。谢谢,对此有任何建议表示赞赏。
答案 0 :(得分:4)
回答1。
dispose()
上的 JFrame
将破坏窗口并在其后清理操作系统,如果它只剩下JFrame
,则Java VM可能会终止。因此,总之,它将关闭窗口,如果JFrame是应用程序的最后剩余窗口,它可能(或可能不)终止您的VM。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
但是,当System.exit()
关闭时会致电JFrame
,无论您的应用中是否有其他有效JFrames
,都会终止VM。
所以,它们是两个不同的东西: - )
要回答你的第二个问题,你可以测试一下。但老实说,我不会为此担心。