在 javadoc 上,HIDE_ON_CLOSE 默认选项说
调用任何注册的 WindowListener 对象后自动隐藏框架。
现在它是什么意思“隐藏”?真实对象被破坏或只是隐藏并继续使用资源?
在 javadoc 上,HIDE_ON_CLOSE 默认选项说
调用任何注册的 WindowListener 对象后自动隐藏框架。
现在它是什么意思“隐藏”?真实对象被破坏或只是隐藏并继续使用资源?
HIDE_ON_CLOSE
与 相同JFrame.setVisible(false)
,
然后JFrame
仅隐藏,不可见,不会以某种方式被破坏(对于 相同JFrame.dispose()
),byJFrame.setVisible(true)
在屏幕上再次可见并且没有任何变化
编辑
@giozh 写道,如果我想销毁 jframe(不关闭整个应用程序)?
默认情况下没有任何理由,因为默认情况下没有理由创建另一个JFrame
,不要那样做,使用CardLayout
(JFrame.pack()
如果需要更改JFrames
屏幕大小)
并且所有这些都Object
保持并增加 JVM 内存,never will be CG'ed
那么 JVM 内存之间没有显着差异JFrame.HIDE_ON_CLOSE
,JFrame.DISPOSE_ON_CLOSE
或者JFrame.setVisible(false)
(在您讨厌的情况CardLayout
下)您可以从 中删除所有内容JComponents
,JFrames ContentPane
然后添加新JComponents
的、设置LayoutManager
的和最后的代码行(在对已经可见的所有更改JFrame
完成之后)将是 JFrame.(re)validate();
,JFrame.repaint();
并且 JFrame.pack();
HIDE_ON_CLOSE
意味着它只会消失,但会在后台运行并消耗资源,尽管在屏幕上不可见。
但是使用EXIT_ON_CLOSE
,相反,它会消失并杀死应用程序(如果你想真正关闭应用程序,请使用它)
将其隐藏在后台而不破坏它,将其保存在内存中