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

时间:2016-02-09 02:48:21

标签: java swing illegalargumentexception cardlayout

我在其中一个课程中使用了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 个答案:

答案 0 :(得分:3)

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