0

所以基本上,我试图获得一个 JPanel 窗口,它将动态显示内部的所有组件。换句话说,它将重新调整窗口大小,并显示以适合其内容。

我已经能够在 JFrame 及其 pack() 方法的帮助下做到这一点:“使这个窗口的大小适合其子组件的首选大小和布局”。在我的情况下,我不想使用 JFrame,因为进行所有更改都需要付出很多努力。现在,我能够让它工作,但只有在 jscroll 的帮助下,它包含了文本和/或任何新行,所以窗口大小更加静态。所以我的 JPanel 正在扩展一个 TopComponent 并能够显示它:

jpanel.open(); 

jpanel.requestActive();

所以问题是如何根据该窗口中的操作调整窗口大小以适应其内容。

4

2 回答 2

2

JPanel必须添加到 a中Window才能有意义。所以我建议你正确使用布局管理器,你会得到一个体面的用户界面。

于 2013-04-05T16:40:42.857 回答
2

当您从可见面板添加/删除组件时,您需要使用:

panel.revalidate();
panel.repaint();

然后布局管理器将再次布局组件。

于 2013-04-05T16:50:06.010 回答