当一些组件不可见时使用frame.pack()?

时间:2011-10-18 16:26:38

标签: swing label frame invisible pack

我正在尝试创建一个简单的Border布局模板,我正在使用frame.pack()来确定帧大小。我在中心区域有一个不可见的标签,包方法似乎没有考虑到标签,所以它没有显示。我知道它最初工作,因为框架最初是适合其他组件的尺寸。 那么如何才能让框架考虑到隐形标签呢?仅当选中中心区域中的按钮时,标签才可见。 一切正常,除了你必须手动增加帧大小才能看到标签。

1 个答案:

答案 0 :(得分:1)

我认为这取决于包含标签的容器的布局管理器。一些布局管理器仅基于可见组件计算首选大小,而其他布局管理器则考虑不可见组件。例如,GroupLayout具有setHonorsVisibility方法。

无论如何,最简单的方法可能是在调用pack之后使标签不可见

另见SetVisible(false) changes the layout of my components within my Panel