SetDefaultCloseOperation参数之间有什么不同?

时间:2014-12-25 21:56:08

标签: java swing jframe

JFrame 类中的 setDefaultCloseOperation 方法中 Dispose_On_Close Exit_On_Close 之间的区别是什么?

2 个答案:

答案 0 :(得分:6)

顾名思义,处理关闭时关闭窗口,关闭时退出窗口关闭时退出JVM。如果窗口是JFrame,如果它是显示的最后一个窗口,并且如果没有运行非守护程序线程,它们都会做同样的事情 - 退出jvm。根据API:

  

当Java虚拟机(VM)中的最后一个可显示窗口被丢弃时,VM可能会终止。

我通常更喜欢在关闭时使用dispose。

答案 1 :(得分:3)

EXIT_ON_CLOSE通过调用System.exit(0)来结束完整的主题。 DISPOSE_ON_CLOSE只关闭jframe,线程运行直到它被其他东西终止。您可以使用具有2个不同关闭操作的2个JFrame的程序对此进行测试。如果您使用EXIT_ON_CLOSE关闭一个帧,则两个帧都将关闭,但如果您关闭DISPOSE_ON_CLOSE设置为关闭操作的帧,则只有一个将消失而另一个将保留。