選択/非選択の設定

広告

ラジオボタンはユーザーが選択したり選択を外したりすることが可能ですが、初期状態で選択/非選択の設定を行ったらり、ラジオボタンを作成した後で設定を行う方法を確認します。

コンストラクタで指定

オブジェクトを作成する時に選択/非選択を設定するには次のコンストラクタを使ってオブジェクトを作成します。

ラジオボタンを、選択状態とテキストの指定ありで作成します。

パラメータ:
  text - ラジオボタンに表示する文字列
  selected - true の場合、初期状態でボタンが選択される。そうでない場合、初期状態でボタンは
    選択されない

1番目の引数にラジオボタンに表示される文字列をStringクラスのオブジェクトとして指定して下さい。そして2番目の引数にラジオボタンを選択した状態にするか非選択の状態にするかを表すboolean型の値を指定します。trueを指定すれば選択状態となりfalseを指定すれば非選択の状態となります。

実際の使い方は次のようになります。

JRadioButton radio = new JRadioButton("ラジオボタン", true);

上記の場合、初期状態で選択状態となります。

メソッドを使って設定

ラジオボタンを作成した後で、選択か非選択かをプログラムで設定することができます。設定するにはJRadioButtonクラスの親クラスであるAbstractButtonクラスで用意されているsetSelectedメソッドを使います。

ボタンの状態を設定します。このメソッドは actionEvent をトリガーしない点に注意してください。
プログラム上で動作を変更するには、doClick を呼び出します。

パラメータ:
  b - ボタンが選択されている場合は true、そうでない場合は false

引数にラジオボタンを選択した状態にするか非選択の状態にするかを表すboolean型の値を指定します。trueを指定すれば選択状態となりfalseを指定すれば非選択の状態となります。

実際の使い方は次のようになります。

JRadioButton radio = new JRadioButton("ラジオボタン");
radio.setSelected(true);

上記の場合、ラジオボタンを作成した後で選択した状態にしています。

サンプルプログラム

では実際に試してみます。

SSample2_1.java

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import java.awt.Container;
import java.awt.BorderLayout;

class SSample2_1 extends JFrame{
  public static void main(String args[]){
    SSample2_1 frame = new SSample2_1("タイトル");
    frame.setVisible(true);
  }

  SSample2_1(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p = new JPanel();

    JRadioButton radio1 = new JRadioButton("Peach", false);
    JRadioButton radio2 = new JRadioButton("Apple", true);
    JRadioButton radio3 = new JRadioButton("Orange");
    radio3.setSelected(true);

    p.add(radio1);
    p.add(radio2);
    p.add(radio3);

    Container contentPane = getContentPane();
    contentPane.add(p, BorderLayout.CENTER);
  }
}

ではコンパイルを行った上で実行してみます。

選択/非選択の設定

今回は3つのラジオボタンを作成しました。1つ目のラジオボタンは初期状態で非選択とし、2つ目のラジオボタンは初期状態で選択としました。3つ目のラジオボタンは作成した後で選択にしています。

コンストラクタで設定した場合でもメソッドで設定した場合でも、あくまで設定を行っただけなので後からユーザーが状態を変更することができます。

選択/非選択の設定

( Written by Tatsuo Ikura )