java - JFrame 和 setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE)

标签 java swing jframe

在 javadoc 上,HIDE_ON_CLOSE 默认选项说明了这一点

Automatically hide the frame after invoking any registered WindowListener objects.

“隐藏”是什么意思?现实对象被销毁或只是隐藏并继续使用资源?

最佳答案

On javadoc, the HIDE_ON_CLOSE default option says that

Automatically hide the frame after invoking any registered WindowListener objects.

Now what it means "HIDE"? the realtive object is destroyed or just hide and continue using resources?

  • HIDE_ON_CLOSEJFrame.setVisible(false) 相同,

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

编辑

@giozh wrote and if i want to destroy the jframe (without close the entire application)?

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

  2. and all those Object stays and increasing JVM memory, never will be CG'ed ,那么 JFrame.HIDE_ON_CLOSEJFrame.DISPOSE_ON_CLOSEJFrame.setVisible(false) 之间的 JVM 内存没有显着差异

  3. (在您讨厌 CardLayout 的情况下)您可以从 JFrames ContentPane 中删除所有 JComponents,然后添加新的JComponents,设置 LayoutManager 和最后一行代码(在对已可见的 JFrame 进行所有更改后)将是 JFrame。(重新)validate();JFrame.repaint();JFrame.pack();

关于java - JFrame 和 setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17743486/

相关文章:

java - 无法通过 Https 发送 POST 消息

Java 碰撞 Swing 无法从侧面工作

java - 单击矩形表面时如何将矩形移动到随机位置?

Java 函数 pack()、JFrame 大小

java - ImageIcon 和按钮上的图像的问题 - JFrame

java - Spring JDBC 从 HSQLDB 查询 BETWEEN DATE

java - java中的撞球游戏——球碰撞算法

java - JPA 多持久性单元错误

java - 如何在java swing应用程序中保留和删除多个图形对象?

java - 在 JPanel 上居中 JButton