我有一个内置JPanel的JFrame(使用Window Builder Pro时的默认内容)。在我的代码中,我添加了一个新的JPanel,但外部JFrame无法重新调整大小以适应新组件。所以我必须手动拖动。
以下是截图:
我怎样才能做到这一点,无论我放在哪里,JFrame都会自动更新其大小以适应新的Swing组件?
答案 0 :(得分:5)
添加新组件后,尝试调用
frame.pack()
在封闭框架上。 pack方法将根据其底层组件的大小设置框架的大小。这实际上是Window类的一种方法,文档可用here
如果你没有方便的窗口/框架参考,一个简单的方法是打电话 后面板 上的SwingUtilities.getWindowAncestor()已添加。
答案 1 :(得分:2)
如何在WindowBuilder中实现这一点我不能说,但在运行时,只需在框架上调用pack
答案 2 :(得分:2)
重塑封闭原生窗口,框架或对话框以适合其内容的常用方法是pack
。见the example here。如果您需要访问例如来自轻量级孩子的框架,您可以使用
JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);