在Swing中,我们可以通过两种方法隐藏JFrame
:
frame.setVisible(false)
frame.setState(Frame.ICONIFIED)
我发现的区别是:
frame.setVisible(false)
从任务栏中删除图标,而ICONIFIED
则不会。- 我们可以向
ICONIFIED
添加监听器,但无法为frame.setVisible(false)
添加监听器。
我还缺少其他主要区别吗?任何想法将不胜感激。
最佳答案
使用 setVisible(false),如果组件尚未标记为不可见,则 setVisible 会调用 invalidate() ,这会使容器的布局和父级链无效,因为容器和位置中现在有更多的屏幕空间必须调整 sibling 的数量以流入释放的空间。
但是ICONFIED
正在执行窗口的最小化过程。
关于java - JFrame setVisible(false) 和 setState(Frame.ICONIFIED) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887915/