JButtonEvent.java



/** Swingコンポーネントのイベント処理(1) */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JButtonEvent extends JPanel {
 
  /** Canvasのオブジェクト */
    public Canvas canvas;

  /** コンストラクタ */
    public JButtonEvent() {
        super();
        JButton button1 = new JButton( "White" );
        JButton button2 = new JButton( "Red" );
        JButton button3 = new JButton( "Green" );
        JButton button4 = new JButton( "Blue" );
        canvas = new Canvas();
        button1.setBackground( Color.white );
        button2.setBackground( Color.red );
        button3.setBackground( Color.green );
        button4.setBackground( Color.blue );
        canvas.setBackground( Color.white );
        canvas.setSize( 128, 128 );
        add( button1 );
        add( button2 );
        add( button3 );
        add( button4 );
        add( canvas );

        ActionAdapter adapter = new ActionAdapter();
        button1.addActionListener( adapter );
        button2.addActionListener( adapter );
        button3.addActionListener( adapter );
        button4.addActionListener( adapter );
    }
 
  /** JButtonのイベントを処理するアダプタのクラス */
    class ActionAdapter implements ActionListener {

     /** イベントを処理するメソッド */
        public void actionPerformed( ActionEvent evt ) {

            JButton b = (JButton)(evt.getSource());
            canvas.setBackground( b.getBackground() );
        }
    } // ActionAdapterのクラス定義の終わり
 
  /** 最初に呼び出されるメソッド */
    public static void main( String argv[] ) {
 
        JFrame frame = new JFrame( "JButton Event Test" );
        JButtonEvent panel = new JButtonEvent();
        frame.getContentPane().add( panel );
        frame.pack();
        frame.setVisible( true );
    }
}