是否可以运行JPanel(没有JFrame)并动态显示所有组件?

时间:2013-04-05 16:36:59

标签: java swing jpanel

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

我已经能够在JFrame及其pack()方法的帮助下完成:"causes this Window to be sized to fit the preferred size and layouts of its subcomponents"。 在我的情况下,我不想使用JFrame,因为它需要很多努力来进行所有更改。 现在,我能够使它工作,但只有在jscroll的帮助下包装文本和/或任何新行,所以窗口大小更加静态。所以我的JPanel正在扩展一个TopComponent并且能够用:

显示它
jpanel.open(); 

jpanel.requestActive();

所以问题是如何调整窗口大小以使其内容符合该窗口中的操作。

2 个答案:

答案 0 :(得分:2)

JPanel必须添加到Window才能有意义。因此,我建议您正确使用布局管理器,您将获得一个不错的用户界面。

答案 1 :(得分:2)

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

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

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