4

我有一个 JFrame,里面有一个 JPanel(使用 Window Builder Pro 时的默认内容)。在我的代码中,我添加了一个新的 JPanel,但外部 JFrame 无法重新调整大小以适应新组件。所以我必须手动拖动。

这是一个屏幕截图:

在此处输入图像描述

我怎样才能做到无论我放什么,JFrame 都会自动更新它的大小以适应新的 Swing 组件?

4

3 回答 3

5

添加新组件后,尝试调用

frame.pack() 

在封闭的框架上。pack 方法将根据其底层组件的大小设置框架的大小。这实际上是 Window 类的一个方法,文档可用here

如果您手边没有对 Window/Frame 的引用,一个简单的方法是 在添加在面板上调用SwingUtilities.getWindowAncestor () 。

于 2013-04-18T20:57:16.603 回答
2

如何在WindowsBuilder中实现这个我不能说,但是在运行时,只需pack在框架上调用

于 2013-04-18T20:57:14.257 回答
2

重塑封闭的本机窗口、框架或对话框以适应其内容的常用方法是pack. 请参阅此处的示例。如果您需要从轻量级孩子那里访问例如框架,您可以使用

JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
于 2013-04-18T20:57:41.133 回答