import java.awt.CardLayout;
import java.awt.Color;import javax.swing.JButton;
import javax.swing.JFrame;public class CardLayoutTest
{
public static void main( String[] args )
{
 JFrame f = new JFrame();
 CardLayout cl = new CardLayout();
 f.setTitle( "haowan" );
 f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
 f.setLayout( cl );

JButton[] button = new JButton[5];
for( int i = 0; i < button.length; i++ )
{
button[i] = new JButton( "The" + i + "is" );
f.add( button[i], "page" + i );
}

button[0].setBackground( Color.RED );
button[1].setBackground( Color.BLACK );
button[2].setBackground( Color.BLUE );
button[3].setBackground( Color.CYAN );
button[4].setBackground( Color.DARK_GRAY);

f.pack();
f.setVisible( true );

while( true )
{
    try
    {
    Thread.sleep( 2000 );
    }
    catch( Exception ee )
    {
     ee.getStackTrace();
    }
    cl.next( f );
    }
}
}
Exception in thread "main" java.lang.IllegalArgumentException: wrong parent for CardLayout
at java.awt.CardLayout.checkLayout(Unknown Source)
at java.awt.CardLayout.next(Unknown Source)
at Swings.CardLayoutTest.main(CardLayoutTest.java:45)

解决方案 »

  1.   

    45行有异常。
    你只捕获Thread.sleep可能发生的异常
      

  2.   

    这样试试看:package javaapplication1;import java.awt.CardLayout;
    import java.awt.Color;import javax.swing.JButton;
    import javax.swing.JFrame;public class CardLayoutTest {    public static void main(String[] args) {
            JFrame f = new JFrame();
            CardLayout cl = new CardLayout();
            f.getContentPane().setLayout(cl);
            f.setTitle("haowan");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   JButton[] button = new JButton[5];
            for (int i = 0; i < button.length; i++) {
                button[i] = new JButton("The" + i + "is");
                f.add(button[i], "page" + i);
            }        button[0].setBackground(Color.RED);
            button[1].setBackground(Color.BLACK);
            button[2].setBackground(Color.BLUE);
            button[3].setBackground(Color.CYAN);
            button[4].setBackground(Color.DARK_GRAY);        f.pack();
            f.setVisible(true);
            while (true) {
                try {
                    Thread.sleep(2000);
                } catch (Exception ee) {
                    ee.getStackTrace();
                }
                cl.next(f.getContentPane());
            }
        }
    }