代码之家  ›  专栏  ›  技术社区  ›  user2999870

CardLayout错误:卡布局的父级错误

  •  0
  • user2999870  · 技术社区  · 8 年前

    我在我的一个类中使用了cardlayout,但是它显示了一个错误。

    我的代码运行类似于:

    // panels instantiated
    CardLayout cl = new CardLayout();
    panel1.setLayout(cl);
    panel2.setLayout(cl);
    
    panel1.add(new JLabel("0 0"), "0");
    panel1.add(new JLabel("0 1"), "1");
    
    panel2.add(new JLabel("1 0"), "0");
    panel2.add(new JLabel("1 1"), "1");
    
    add(panel1);
    add(panel2);
    
    cl.show(panel1, "0");
    cl.show(panel2, "0");  // error at this line
    

    为什么它不考虑将panel2作为父容器(IllegalArgumentException)?

    任何帮助都将不胜感激。 谢谢

    1 回复  |  直到 8 年前
        1
  •  3
  •   Hovercraft Full Of Eels    8 年前

    CardLayout不是可以在容器之间共享的布局,您应该仅将CardLayer添加到一个容器中。如果您需要两个使用布局的容器,请为每个容器提供自己的CardLayout对象。