窗口上的 Java Swing pack() 不会最大化它,如何避免这种情况?
我有一个窗口,因为我动态地更改了它的子窗口(有时我交换 JPanel),所以除了在窗口上调用 pack() 来显示新元素之外,我没有找到其他解决方案。否则,只有当我手动调整窗口大小时它才会显示。
这样做的问题是,如果窗口最大化,在 pack() 之后它将不再最大化,这不是我可以给客户端的。
有什么线索吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
首先,我希望您使用
CardLayout
用于面板交换,因为此功能内置于特定的布局管理器中。通常,您需要调用验证
/重新验证
和repaint
在容器上刷新显示。另请参阅:
First of all, I hope that you're using
CardLayout
for panel swapping, since this functionality is built into that particular layout manager. And typically, you'll want to invokevalidate
/revalidate
andrepaint
on the container to refresh the display.See also:
如果你真的必须:
...否则@mre的解决方案会(好多)更好! :)
If you really have to:
... Otherwise @mre's solution is (much) better! :)
我遇到了和你一样的问题,对我来说,我对我的解决方案很满意,我分享它可能对你的上下文有帮助
}
我在我的主框架上设计了一个空面板,并在一个按钮中我称之为它
,它非常适合我
I got the same problem as you and for me I m satisfied with my solution I share it may be it help you on your context
}
I designed an empty panel on my main Frame and in a button I call this
that works perfectly for me
这是我处理这个问题的新方法:
我使用这种方法在我的 jframe 上隐藏和显示 jpanels。
按钮代码上的示例
与隐藏相同。
That my new way of handling this issue :
I m using this methods to hide and show jpanels on my jframe.
sample on a button code
the same for the hiding.