试图找出 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,然后再到这里。解决方案通常在那里找到,学习这样做是一个养成的好习惯。
我正在尝试了解如何使用 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,然后再到这里。解决方案通常在那里找到,学习这样做是一个养成的好习惯。