我有一个关于CardLayout显示方法的问题
所以我声明了我的CardLayout并将它应用于我的JPanel
CardLayout cl = new CardLayout();
panel.setLayout(cl);然后我在CardLayout中添加了2个面板
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的父级错误“。
提前感谢
发布于 2012-09-06 06:25:27
您需要有三个面板。家长和两张卡片。
当前,您有"panel“作为父级和子级之一。
CardLayout cl = new CardLayout();
panel.setLayout(cl);和
cl.addLayoutComponent(panel, "menuScreen");考虑Java trail中的以下代码示例
....
//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);https://stackoverflow.com/questions/12290609
复制相似问题