试图找出CardLayout

时间:2015-03-07 14:36:26

标签: java swing jpanel layout-manager cardlayout

我正在尝试研究如何使用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);

1 个答案:

答案 0 :(得分:2)

更改

cardL.show(sp, "Start");

cardL.show(cards, "Start");

正如CardLayout API将告诉您的那样,show(...)方法的第一个参数应该是对使用CardLayout的容器的引用。

此外:

  • 避免混合AWT(Frame)和Swing(JPanel)。而只是使用Swing。
  • 最安全地为您的CardLayout键使用字符串常量。这样就可以避免恶意拼写和大写错误。
  • 对于类似的错误,请在到达此处之前先转到Java API。解决方案经常在那里找到,学习这样做是一个很好的习惯。