我在其中一个课程中使用了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)?
任何帮助将不胜感激。 感谢。
答案 0 :(得分:3)
CardLayout不是可以在容器之间共享的布局,您应该只将CardLayout添加到一个容器中。如果您需要使用布局的两个容器,请为每个容器分配一个自己的CardLayout对象。