JSliderEvent.java



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

  /** コンストラクタ */
    public JSliderEvent() {
        JSlider slider
           = new JSlider( JSlider.HORIZONTAL, 0, 255, 0 );
        slider.setPaintLabels( true );
        slider.setPaintTicks( true );
        slider.setMajorTickSpacing( 64 );
        slider.setMinorTickSpacing( 16 );
        canvas = new Canvas();
        canvas.setBackground( Color.black );
        canvas.setSize( 128, 128 );
        add( slider );
        add( canvas );
        ChangeAdapter adapter = new ChangeAdapter();
        slider.addChangeListener( adapter );
    }
 
  /** JSliderのイベントを処理するアダプタのクラス */
    class ChangeAdapter implements ChangeListener {

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

            JSlider slider = (JSlider)(evt.getSource());
            int value = slider.getValue();
            canvas.setBackground( new Color( value, value, value ) );
        }
    } // ChangeAdapterのクラス定義の終わり
 
  /** 最初に呼び出されるメソッド */
    public static void main( String argv[] ) {
 
        JFrame frame = new JFrame( "JSlider Event Test" );
        JSliderEvent panel = new JSliderEvent();
        frame.getContentPane().add( panel );
        frame.pack();
        frame.setVisible( true );
    }
}