爪哇 - CardLayout显示()抛出:IllegalArgumentException(Ja

2019-09-22 04:45发布

我与CardLayout显示方法的问题

所以,我宣布我的CardLayout并将其应用到我的JPanel

CardLayout cl = new CardLayout();
panel.setLayout(cl);

然后,我可以添加2个板到CardLayout

cl.addLayoutComponent(panel, "menuScreen");
cl.addLayoutComponent(panel1, "gameScreen");

然后,我有一个JButton可以在点击时,我展示gameScreen

public void mouseClicked(MouseEvent e) {
    if(e.getSource() ==  (startGame))

    scenechange.show(panel,"gameScreen");
}

唯一的问题是,它并没有去我gameScreen。 它给了我一个llegalArgumentException。 它说: “在异常线程 ”AWT-EventQueue的 - 0“ java.lang.IllegalArgumentException异常:错误的父级CardLayout”。

提前致谢

Answer 1:

你需要有三个面板。 家长和两张牌。

目前,你有“面板”为父母和童装之一。

CardLayout cl = new CardLayout();
panel.setLayout(cl);

cl.addLayoutComponent(panel, "menuScreen");

考虑从这个示例代码的Java线索

 ....
 //Create the "cards".
    JPanel card1 = new JPanel();
    card1.add(new JButton("Button 1"));

    JPanel card2 = new JPanel();
    card2.add(new JTextField("TextField", 20));

    //Create the panel that contains the "cards".
    cards = new JPanel(new CardLayout());
    cards.add(card1, BUTTONPANEL);
    cards.add(card2, TEXTPANEL);


文章来源: Java - CardLayout show() IllegalArgumentException