试图找出 CardLayout

Trying to figure out the CardLayout

我正在尝试了解如何使用 CardLayout,但我不断收到 "wrong parent for 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 (Frame) 和 Swing (JPanel)。而是只使用 Swing。
  • 为 CardLayout 键使用字符串常量是最安全的。这样您就可以避免有害的拼写和大写错误。
  • 对于类似的错误,请先转到Java API,然后再到这里。解决方案通常在那里找到,学习这样做是一个养成的好习惯。