2013-04-05 57 views
0

所以基本上,我试图获得一个JPanel窗口,它将动态显示所有组件。换句话说,这将重新调整窗口的大小,并显示以适应其内容。是否可以运行JPanel(不带JFrame)并动态显示所有组件?

我已经能够在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

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

2

当你添加/从你需要使用一个可视面板删除组件:

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

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