【发布时间】:2013-10-09 12:38:03
【问题描述】:
我有很多 jPanel (panelF) 添加到其他 jPanel(panelB) 中。 jPanelF 包含 jPanelC。
我已设置布局以添加它们,如下所示:
PanelB.setLayout(new BoxLayout(this.PanelB, BoxLayout.PAGE_AXIS));
PanelF panelF1 = new PanelF();
PanelB.add(panelF1);
PanelF panelF2 = new PanelF();
PanelB.add(panelF2);
我在 jPanelC1 中设置了 visible false。但是 JPanelF2 保留了距离,不想留下那个空白
我想要的是当 JPanelC1 消失时。 jPanelF 之间保持距离,而不是空白。 我尝试了 validate() 并更改了布局,但失败了。会有什么办法? 非常感谢。对不起我的英语
知道是否有类似 $("#panelC1").fadeOut("slow") 的东西吗?会很理想。
【问题讨论】:
-
我认为这就是
BoxLayout的工作原理... -
就个人而言,我会尝试使用来自 SwingX 的
VerticalLayout -
那个布局应该使用呢?我正在考虑使用列表,因为没有任何布局
-
根据你所描述的,
VerticalLayout可以实现你想要的。它将组件布置为“列表”(本质上),因此它们锚定在父容器的顶部。它依赖于组件的首选高度,因此当您隐藏子组件时,布局会反映这些更改... -
非常感谢您的帮助,但我失败了。我已经导入了import org.jdesktop.swingx.VerticalLayout,我添加了布局PanelB.setLayout(new VerticalLayout())。甚至我确实验证了()以消失 PanelC1