JDialog setVisible(false)vs dispose()

keu*_*leJ 22 java swing jdialog

在对话框上使用setVisible(false)并在以后重用它是否有意义,或者每次调用dispose()更安全并创建一个新的JDialog.如何使用setVisible(false)进行内存泄漏?

编辑:我的问题不在于退出应用程序.有关将主框架作为父框架并在应用程序生命周期内打开和关闭的对话框的更多信息.例如,假设我的应用程序有大约10个对话框,每次打开它们时都会显示不同的数据.我应该重用实例并使用setVisible(),还是应该每次都创建一个新的Dialog并在关闭时处理它们.

mre*_*mre 25

我建议使用dispose()释放资源和释放内存.如果要再次显示该对话框,只需调用即可setVisible(true).


重要的是要注意,当Java虚拟机(VM)中的最后一个可显示窗口被丢弃时,VM可以终止.有关更多信息,请参阅AWT线程问题.

  • JWindow和JDialog错过了方法finalize(),然后就不那么容易了,也没有GC ..... btw +1 http://stackoverflow.com/questions/6309407/remove-top-level-container-on-runtime (2认同)