[英]Returning value from JDialog; dispose(), setVisible(false) - example
[英]JDialog setVisible(false) vs dispose()
在对话框上使用 setVisible(false) 并稍后重用它是否有意义,或者每次调用 dispose() 并创建新的 JDialog 更安全。 setVisible(false) 的内存泄漏怎么办?
编辑:我的问题不是关于退出应用程序。 更多关于将主框架作为父框架并在应用程序生命周期内打开和关闭的对话框。 例如,假设我的应用程序有大约 10 个对话框,每次打开它们时都会显示不同的数据。 我应该重用实例并使用 setVisible() 还是应该每次都创建一个新的 Dialog 并在关闭时处理它们。
我仍然看不到between JDialog#dispose();
任何区别between JDialog#dispose();
和JDialog.setVisible(false)
在这里更多,它们中的每一个都可以被唤醒以供重用,并且是否被处置或可见都没有关系
我的观点是这个问题必须分成三个不同的领域
1)一些JFrame
是JDialog
或JWindow
父级( exist only is is there JFrame
),然后最后一个必须关灯
2) JDialog
没有父级
3) 还存在另一个JFrame, JDialog or JWindow
, 那么最后一个必须关灯
Window[] wins = Window.getWindows();
System.exit(0);
JFrame.EXIT_ON_CLOSE
可见JFrame
,或者另一种方式可以使用System.exit(0);
实现WindowsListener
System.exit(0);
调用dispose()
释放与对话框关联的资源。 您可以在dispose()
之后保留对话框。 如果您担心周围有太多对话框,请使用WeakReference
来保存引用。 这将确保您不使用的对话框仅在不需要它们占用的空间时才能在垃圾收集中存活。
当一个窗口被隐藏两次时,我遇到了一个差异(例如,由于软件设计不好)如果你处理一个已经处理过的窗口,VM 会挂起。 (java 8) 如果你在一个已经不可见的窗口上设置了可见的 false 生活会继续......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.