我有一个 JFrame,里面有一个 JPanel(使用 Window Builder Pro 时的默认内容)。在我的代码中,我添加了一个新的 JPanel,但外部 JFrame 无法重新调整大小以适应新组件。所以我必须手动拖动。
这是一个屏幕截图:
我怎样才能做到无论我放什么,JFrame 都会自动更新它的大小以适应新的 Swing 组件?
添加新组件后,尝试调用
frame.pack()
在封闭的框架上。pack 方法将根据其底层组件的大小设置框架的大小。这实际上是 Window 类的一个方法,文档可用here
如果您手边没有对 Window/Frame 的引用,一个简单的方法是 在添加后在面板上调用SwingUtilities.getWindowAncestor () 。
如何在WindowsBuilder中实现这个我不能说,但是在运行时,只需pack
在框架上调用
重塑封闭的本机窗口、框架或对话框以适应其内容的常用方法是pack
. 请参阅此处的示例。如果您需要从轻量级孩子那里访问例如框架,您可以使用
JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);