使用Java Swing组件的Z-Order

时间:2015-11-12 04:24:43

标签: java swing jpanel

我已经将 setComponentZOrder(Component com,int index)用于JPanel(panel1),如下所示

panel1.setComponentZOrder(panel2, 0);

这里panel2是我的第二个面板。现在显示panel2而不是panel1。我想将panel1重新排列为原始panel1。怎么做?

1 个答案:

答案 0 :(得分:2)

ZOrder用于控制子组件在父组件上的绘制顺序。

如果要在frame而不是panel2中显示panel1,则不应该使用ZOrder。

相反,您应该使用布局管理器。具体来说,您应该在父面板上使用CardLayout,然后将panel1和panel2添加到此面板。然后,您可以使用CardLayout交换面板。

使用CardLayout的基础是:

JPanel parent = new JPanel( new CardLayout() );
JPanel child1 = new JPanel();
JPanel child2 = new JPanel();
parent.add(child1, "child1");
parent.add(child2, "child2");

然后,当您想要显示不同的面板时,可以使用以下代码:

CardLayout cl = (CardLayout)(parent.getLayout());
cl.show(parent, "child2");

阅读How to Use CardLayout上Swing教程中的部分,了解更多信息和工作示例。