CardPanel.java



/** CardLayout のテスト */
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class CardPanel extends JPanel
                       implements ActionListener {
 /** ボタンの個数 */
    public static final int MAX_NUM = 12;

 /** コンストラクタ */
    public CardPanel() {
        CardLayout lay = new CardLayout();  //レイアウトの生成
        setLayout( lay );                   //レイアウトの設定
        JButton[] buttons = new JButton[MAX_NUM];
        Color bcolor = new Color( 0, 160, 0 );
        Font font = new Font( "TimesRoman", Font.BOLD, 18 );
        for( int i=0; i<MAX_NUM; i++ ) {
            buttons[i] = new JButton( "Button" + i );
            buttons[i].setBackground( bcolor );
            buttons[i].setForeground( Color.white );
            buttons[i].setFont( font );
            buttons[i].addActionListener( this );  // イベント処理の登録
            add( buttons[i], "Button" + i );
        }
    }

 /** 最初に呼び出されるメソッド */
    public static void main( String argv[] ) {
        JFrame frame = new JFrame( "CardLayout Test" );
        CardPanel panel = new CardPanel();
        frame.getContentPane().add( panel );
        frame.setSize( 400, 200 );
        frame.setVisible( true );
    }

 /** ボタンのイベント処理 */
    public void actionPerformed( ActionEvent evt ) {
        ((CardLayout)getLayout()).next( this );
    }
}