具有 Java 个 Swing 组件的 Z 顺序

Z-Order with Java Swing Components

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

panel1.setComponentZOrder(panel2, 0);

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

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

如果您想在框架中显示面板 1 而不是面板 2,那么您不应该使用 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 教程部分,了解更多信息和工作示例。