dispose()vs setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

时间:2015-06-17 10:56:20

标签: java swing


我一直在搜索这个主题,但从来没有对任何答案感到满意,所以最后在这里问一个问题:)。无论如何, 从这个类似的post可以清楚地看出,dispose()并未终止所有进程,并且即使在task manager之后仍然保留在JFrame中(AWT进程未完全终止) } 关闭了。

所以,我的问题是: -

  1. 处理JFrame后, this.dispose() 会清除每个子进程吗?或 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 代替此工作。
  2. 如果我正在为低规格PC开发应用程序,那么哪一个可以性能良好
  3. 谢谢,对此有任何建议表示赞赏。

1 个答案:

答案 0 :(得分:4)

回答1。

dispose()上的

JFrame将破坏窗口并在其后清理操作系统,如果它只剩下JFrame,则Java VM可能会终止。因此,总之,它将关闭窗口,如果JFrame是应用程序的最后剩余窗口,它可能(或可能不)终止您的VM。

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)但是,当System.exit()关闭时会致电JFrame,无论您的应用中是否有其他有效JFrames,都会终止VM。

所以,它们是两个不同的东西: - )

要回答你的第二个问题,你可以测试一下。但老实说,我不会为此担心。