在BoxLayout中重新排序元素

时间:2014-04-09 04:59:15

标签: java swing layout boxlayout

我有一个BoxLayout(Y_AXIS),其中添加了一些(FlowLayout)元素,如下所示:

element1> ================= <element1
element2> ================= <element2
element3> ================= <element3

只是想知道是否有一种简单的方法可以在布局中交换这些元素位置。即我可能想要将元素3向上移动并将元素2向下移动。

是否有类似的内容:

element3.setPosition(element2,ABOVE);

由于

编辑:找到this解决方案。现在就试试吧

2 个答案:

答案 0 :(得分:3)

您可以考虑使用Container#setComponentZOrder

这将允许您更改组件在容器中的显示顺序(实际更改它们的呈现顺序和布局顺序)

int index = getComponentZOrder(element3);
setComponentZOrder(element3, --index);

请注意,您无法在0或以上getComponentCount() - 1

以下设置zorder

答案 1 :(得分:2)

  

有什么类似......

您可以使用以下方法制作自己的方法:

panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();

了解Container API以获取有关这些方法的更多详细信息。