我为我的一个类使用了卡片布局,但它显示错误。
我的代码运行类似于这样:
// 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)?
任何帮助将不胜感激。谢谢。
CardLayout
不是可以在容器之间共享的布局,您应该仅将 CardLayout 添加到一个容器中。如果需要两个使用布局的容器,请为每个容器指定自己的 CardLayout 对象。