ラジオボタンの選択/非選択の切り替え

ラジオボタンは利用者がクリックすることによって選択と非選択を切り替えることができますが、コンストラクタの引数に指定することでラジオボタンの作成時に選択か非選択かを指定することができます。またラジオボタンを作成したあとであとから設定も可能です。ここではラジオボタンの選択/非選択の切り替えを行う方法について解説します。

(2022 年 04 月 11 日公開 / 2022 年 04 月 11 日更新)

選択か非選択か設定する

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

public JRadioButton(String text,
boolean selected)

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

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

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

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

JRadioButton radio = new JRadioButton("Apple", true);

上記の場合、最初から選択された状態でラジオボタンが作成されます。

-- --

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

public void setSelected(boolean b)

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

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

引数にチェックボックスを選択した状態にするか非選択の状態にするかを表す boolean 型の値を指定します。 trueを 指定すれば選択状態となり false を指定すれば非選択の状態となります。

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

JRadioButton radio = new JRadioButton("Apple");
radio.setSelected(true);

なおコンストラクタで設定する場合も、メソッドを使って設定する場合もラジオボタンがグループにまとめられている時は選択状態にできるラジオボタンはグループの中で一つだけです。最初に選択状態にしたラジオボタンのみ選択状態となり、その後で他のラジオボタンを選択状態に設定しても反映されません(もちろん利用者がクリックすれば反映されます)。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample2_1.java という名前で保存します。

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

class JSample2_1 extends JFrame{
  public static void main(String args[]){
    JSample2_1 frame = new JSample2_1("MyTitle");
    frame.setVisible(true);
  }

  JSample2_1(String title){
    setTitle(title);
    setBounds(100, 100, 600, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

    ButtonGroup bgroup = new ButtonGroup();
    bgroup.add(radio1);
    bgroup.add(radio2);
    bgroup.add(radio3);

    JPanel p = new JPanel();
    p.add(radio1);
    p.add(radio2);
    p.add(radio3);

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

次のようにコンパイルを行います。

javac JSample2_1.java

選択か非選択か設定する(1)

コンパイルが終わりましたら実行します。

java JSample2_1

ラジオボタンを 2 つ追加しました。ラジオボタンはすべて同じグループに追加されています。 2 つ目のラジオボタンはコンストラクタで選択状態を設定しています。

選択か非選択か設定する(2)

-- --

ラジオボタンの選択/非選択の切り替えを行う方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。