java - JFrame setVisible(false) 和 setState(Frame.ICONIFIED) 之间的区别

标签 java swing jframe

在Swing中,我们可以通过两种方法隐藏JFrame:

  1. frame.setVisible(false)
  2. frame.setState(Frame.ICONIFIED)

我发现的区别是:

  1. frame.setVisible(false) 从任务栏中删除图标,而 ICONIFIED 则不会。
  2. 我们可以向 ICONIFIED 添加监听器,但无法为 frame.setVisible(false) 添加监听器。

我还缺少其他主要区别吗?任何想法将不胜感激。

最佳答案

使用 setVisible(false),如果组件尚未标记为不可见,则 setVisible 会调用 invalidate() ,这会使容器的布局和父级链无效,因为容器和位置中现在有更多的屏幕空间必须调整 sibling 的数量以流入释放的空间。

API of Component .

但是ICONFIED正在执行窗口的最小化过程。

关于java - JFrame setVisible(false) 和 setState(Frame.ICONIFIED) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887915/

相关文章:

java - 单击按钮后如何启用/激活单选按钮?

java - 如何正确刷新JFrame中的图像?

java - 单元测试相同特性/接口(interface)的多个实现

java - 速记变量赋值

java - 覆盖 ActionListener 中的 run() 方法

java - JButton 加速器

java - 在桌面应用程序中调整 JFrame 的大小 - NetBeans

java - 如何禁用另一个 Activity 中的按钮?

java - Android 中的应用程序有不同的外观吗?

java - 获取旋转器的当前范围?