我正在尝试找出如何使用CardLayout,但是我不断收到“ CardLayout的父代错误”之类的错误。我以前从未使用过CardLayout,而且似乎在网上找不到很多东西。我只需要能够在框架上的两个面板之间切换。谢谢你的帮助。这是我当前的代码:
Frame f = new Frame();
CardLayout cardL = new CardLayout();
JPanel cards = new JPanel(cardL);
f.add(cards);
StartPanel sp = new StartPanel();
OtherPanel op = new OtherPanel();
cards.add(sp, "Start");
cards.add(op, "Other");
cardL.show(sp, "Start");
f.setVisible(true);
最佳答案
更改
cardL.show(sp, "Start");
至
cardL.show(cards, "Start");
正如CardLayout API会告诉您的那样,
show(...)
方法的第一个参数应该是对使用CardLayout的容器的引用。也:
避免混合使用AWT(框架)和Swing(JPanel)。而是仅使用Swing。
对CardLayout密钥使用String常量最安全。这样可以避免有害的拼写和大写错误。
对于类似的错误,请在进入此处之前先进入Java API。通常在这里可以找到解决方案,并且学会这样做是一个很好的习惯。