//Sample13
import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Sample13 {
private static final String window_title = "ラジオボタンクリックとテキストフィールド表示";
private static final int window_width = 640;
private static final int window_height = 400;
private static final String rb1_title = "abc";
private static final String rb2_title = "xyz";
private static final String data1 = "あああああ";
private static final String data2 = "んんんんんんんんんん";
private static final int tf_size = 20;
JTextField tf = new JTextField(Sample13.data1, Sample13.tf_size);
// 主処理
public static void main(final String ar[]) {
final Sample13 sample = new Sample13();
}
// コンストラクタ
public Sample13() {
// フレームを作成
final JFrame f = new JFrame(Sample13.window_title);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ラジオボタンを作成
final JRadioButton rb1 = new JRadioButton(Sample13.rb1_title, true);
final JRadioButton rb2 = new JRadioButton(Sample13.rb2_title);
// ボタングループにラジオボタンを追加
final ButtonGroup bg = new ButtonGroup();
bg.add(rb1);
bg.add(rb2);
// ラジオボタンにアイテムリスナを登録
rb1.addItemListener(new SelectItemListener());
rb2.addItemListener(new SelectItemListener());
// ラジオボタンとテキストフィールドをレイアウト
final JPanel p = new JPanel();
p.add(rb1);
p.add(rb2);
f.getContentPane().add(p, BorderLayout.NORTH);
final JPanel p2 = new JPanel();
p2.add(this.tf);
f.getContentPane().add(p2, BorderLayout.CENTER);
// フレームを表示
f.setSize(Sample13.window_width, Sample13.window_height);
f.setVisible(true);
}
// アイテムイベントを受け取るリスナ
class SelectItemListener implements ItemListener {
public void itemStateChanged(final ItemEvent e) {
// イベント発生元オブジェクト取得
final AbstractButton sel = (AbstractButton) e.getItemSelectable();
// 選択されているチェックボックスの場合
if (e.getStateChange() == ItemEvent.SELECTED) {
if (sel.getText().equals(Sample13.rb1_title)) {
Sample13.this.tf.setText(Sample13.data1);
} else if (sel.getText().equals(Sample13.rb2_title)) {
Sample13.this.tf.setText(Sample13.data2);
}
}
}
}
}