我已经将 setComponentZOrder(Component com,int index)用于JPanel(panel1),如下所示
panel1.setComponentZOrder(panel2, 0);
这里panel2是我的第二个面板。现在显示panel2而不是panel1。我想将panel1重新排列为原始panel1。怎么做?
答案 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教程中的部分,了解更多信息和工作示例。