JRadioButtonEvent.java
/** Swingコンポーネントのイベント処理(3) */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JRadioButtonEvent extends JPanel {
/** Canvasのオブジェクト */
public Canvas canvas;
/** コンストラクタ */
public JRadioButtonEvent() {
super();
ButtonGroup group = new ButtonGroup();
ChoiceAdapter adapter = new ChoiceAdapter();
Color[] colors = { Color.black, Color.red, Color.orange,
Color.yellow, Color.green, Color.cyan,
Color.blue, Color.magenta, Color.white
};
JRadioButton[] radios = new JRadioButton[colors.length];
for( int i=0; i<colors.length; i++ ) {
radios[i] = new JRadioButton();
radios[i].setBackground( colors[i] );
group.add( radios[i] );
add( radios[i] );
radios[i].addItemListener( adapter );
}
radios[0].setForeground( Color.white );
group.setSelected( radios[0].getModel(), true );
canvas = new Canvas();
canvas.setBackground( Color.black );
canvas.setSize( 128, 128 );
add( canvas );
}
/** JRadioButtonのイベントを処理するアダプタのクラス */
class ChoiceAdapter implements ItemListener {
/** イベントを処理するメソッド */
public void itemStateChanged( ItemEvent evt ) {
JRadioButton rb = (JRadioButton)(evt.getItemSelectable());
canvas.setBackground( rb.getBackground() );
}
} // ChoiceAdapterのクラス定義の終わり
/** 最初に呼び出されるメソッド */
public static void main( String argv[] ) {
JFrame frame = new JFrame( "JRadioButton Event Test" );
JRadioButtonEvent panel = new JRadioButtonEvent();
frame.getContentPane().add( panel );
frame.pack();
frame.setVisible( true );
}
}