3

在 javadoc 上,HIDE_ON_CLOSE 默认选项说

调用任何注册的 WindowListener 对象后自动隐藏框架。

现在它是什么意思“隐藏”?真实对象被破坏或只是隐藏并继续使用资源?

4

3 回答 3

6

在 javadoc 上,HIDE_ON_CLOSE 默认选项说

调用任何注册的 WindowListener 对象后自动隐藏框架。

现在它是什么意思“隐藏”?真实对象被破坏或只是隐藏并继续使用资源?

  • HIDE_ON_CLOSE与 相同JFrame.setVisible(false)

  • 然后JFrame仅隐藏,不可见,不会以某种方式被破坏(对于 相同JFrame.dispose()),byJFrame.setVisible(true)在屏幕上再次可见并且没有任何变化

编辑

@giozh 写道,如果我想销毁 jframe(不关闭整个应用程序)?

  1. 默认情况下没有任何理由,因为默认情况下没有理由创建另一个JFrame,不要那样做,使用CardLayoutJFrame.pack()如果需要更改JFrames屏幕大小)

  2. 并且所有这些都Object保持并增加 JVM 内存,never will be CG'ed那么 JVM 内存之间没有显着差异JFrame.HIDE_ON_CLOSEJFrame.DISPOSE_ON_CLOSE或者JFrame.setVisible(false)

  3. (在您讨厌的情况CardLayout下)您可以从 中删除所有内容JComponentsJFrames ContentPane然后添加新JComponents的、设置LayoutManager的和最后的代码行(在对已经可见的所有更改JFrame完成之后)将是 JFrame.(re)validate();JFrame.repaint();并且 JFrame.pack();

于 2013-07-19T10:12:30.427 回答
0

HIDE_ON_CLOSE意味着它只会消失,但会在后台运行并消耗资源,尽管在屏幕上不可见。

但是使用EXIT_ON_CLOSE,相反,它会消失并杀死应用程序(如果你想真正关闭应用程序,请使用它)

于 2013-07-19T10:17:49.283 回答
0

将其隐藏在后台而不破坏它,将其保存在内存中

于 2013-07-19T10:10:55.487 回答