Java 在BoxLayout中对元素重新排序

Java 在BoxLayout中对元素重新排序,java,swing,layout,boxlayout,Java,Swing,Layout,Boxlayout,我有一个BoxLayout(Y_轴),其中已经添加了一些(FlowLayout)元素,如下所示: element1> ================= <element1 element2> ================= <element2 element3> ================= <element3 谢谢 编辑:找到解决方案。现在就开始吧 有什么像 您可以使用以下方法创建自己的方法: panel.remove(...); panel.

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

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

编辑:找到解决方案。现在就开始吧

有什么像

您可以使用以下方法创建自己的方法:

panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();
查看
容器
API以了解有关这些方法的更多详细信息

有什么像

您可以使用以下方法创建自己的方法:

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

CHECK出代码>容器/代码> API以了解这些方法的更多细节。

可以考虑使用

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

<> >注意,您不能在下面的代码下设置ZORT > 0 或以上的代码> GETCAMECTONCOUNT()-1 < /COD> < /P> < P>您可以考虑使用

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


请注意,您不能在
0
以下或
getComponentCount()-1

以上设置zorder。试试看@MadProgrammer,不错的建议,听起来像是我的答案。这看起来不错@MadProgrammer。我现在就要试一试。看一看@MadProgrammer,很好的建议,听起来像是我的答案。这看起来不错@MadProgrammer。我现在就要试一试。干杯,但问题是,它仍然只是将他们添加到列表的底部。我将不得不替换两个“移动”面板中的所有元素,这可能会得到一个混乱的..@user1270235,正如我所说的,请阅读API。add(…)方法有多个方法签名。
add(component,int)
方法允许您指定组件的插入位置。话虽如此,madprogrammer建议使用ZOrder会更容易,但问题是它仍然只是将它们添加到列表的底部。我将不得不替换两个“移动”面板中的所有元素,这可能会得到一个混乱的..@user1270235,正如我所说的,请阅读API。add(…)方法有多个方法签名。
add(component,int)
方法允许您指定组件的插入位置。话虽如此,madprogrammer建议使用ZOrder会更简单。+1,很好的建议,删除/添加在一条语句中完成,只需更改ZOrder。回答得很好!效果很好。我没有意识到这一点。Thanks@user1270235这有点怪,但能完成任务;)@user1270235,我希望您阅读API以真正理解此方法的作用,因为它只是Swing绘制组件的方式的副产品,而这种方式恰好可以工作。ZOrder实际上是用来控制“组件的堆叠”在另一个组件之上。+1,很好的建议,删除/添加在一个语句中完成,只需更改ZOrder。回答得很好!效果很好。我没有意识到这一点。Thanks@user1270235这有点怪,但能完成任务;)@user1270235,我希望您阅读API以真正理解此方法的作用,因为它只是Swing绘制组件的方式的副产品,而这种方式恰好可以工作。ZOrder实际上是用来控制“组件堆叠”的。
int index = getComponentZOrder(element3);
setComponentZOrder(element3, --index);