具有 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 教程部分,了解更多信息和工作示例。
我已将 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 教程部分,了解更多信息和工作示例。