ラジオボタンの作成と表示文字列の設定

広告

ラジオボタンを作成するにはJRadioButtonクラスを使用します。JRadioButtonクラスは次のように定義されています。

public class JRadioButton
extends JToggleButton implements Accessible
java.lang.Object
 L java.awt.Component
     L java.awt.Container
         L javax.swing.JComponent
             L javax.swing.AbstractButton
                 L javax.swing.JToggleButton
                     L javax.swing.JRadioButton

ラジオボタンはコンポーネントの親クラスであるJComponentクラスのサブクラスとなっています。またボタン系を扱うクラス全般の親クラスであるAbstractButtonクラスのサブクラスでもあります。さらに選択/非選択のどちらかの状態を持つJToggleButtonクラスのサブクラスでもあります。

JRadioButtonクラスのオブジェクトを作成

JRadioButtonクラスを利用するにはコンストラクタを使ってJRadioButtonクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタの概要
JRadioButton()
初期状態では選択解除されているラジオボタンを、テキストの指定なしで作成します。
JRadioButton(Action a)
指定された Action からプロパティーを取得するラジオボタンを作成します。
JRadioButton(Icon icon)
初期状態では選択解除されているラジオボタンを、イメージの指定あり、テキストの指定なしで作成します。
JRadioButton(Icon icon, boolean selected)
ラジオボタンを、選択状態とイメージの指定あり、テキストの指定なしで作成します。
JRadioButton(String text)
選択解除状態のラジオボタンを、テキストの指定ありで作成します。
JRadioButton(String text, boolean selected)
ラジオボタンを、選択状態とテキストの指定ありで作成します。
JRadioButton(String text, Icon icon)
初期状態では選択解除のラジオボタンを、テキストとイメージの指定ありで作成します。
JRadioButton(String text, Icon icon, boolean selected)
ラジオボタンを、テキスト、イメージ、および選択状態の指定ありで作成します。

コンストラクタは表示される文字列とアイコンの指定によって異なっています。また初期状態で選択されているかどうかも設定することができます。まずは最も基本となる1番目のコンストラクタを確認します。次のように定義されています。

初期状態では選択解除されているラジオボタンを、テキストの指定なしで作成します。

文字列もアイコンも表示されず、また非選択となっているラジオボタンを作成します。

今度はラジオボタンに表示される文字列を指定する5番目のコンストラクタを確認します。

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

パラメータ:
  text - ラジオボタンに表示する文字列

引数にラジオボタンに表示される文字列をStringクラスのオブジェクトとして指定して下さい。

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

JRadioButton radio1 = new JRadioButton();
JRadioButton radio2 = new JRadioButton("ラジオボタン");

表示文字列の設定

ラジオボタンを作成した後で表示される文字列を設定したり再設定したりすることができます。文字列を設定するにはJRadioButtonクラスの親クラスであるAbstractButtonクラスで用意されているsetTextメソッドを使います。

ボタンのテキストを設定します。

パラメータ:
  text - テキストの設定に使用する文字列

引数にラジオボタンに表示される文字列を表すStringクラスのオブジェクトを指定して下さい。

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

JRadioButton radio = new JRadioButton();
radio.setText("東京都");

ラジオボタンに表示される文字列が"東京都"に設定されます。

サンプルプログラム

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

SSample1_1.java

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

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

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

    JPanel p = new JPanel();

    JRadioButton radio1 = new JRadioButton();
    JRadioButton radio2 = new JRadioButton("Apple");
    JRadioButton radio3 = new JRadioButton();
    radio3.setText("Orange");

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

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

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

ラジオボタンの作成と表示文字列の設定

今回は3つのラジオボタンを作成しました。デフォルトではラジオボタンは選択されていませんが、クリックすることで選択したり選択を外したりすることができます。

ラジオボタンの作成と表示文字列の設定

ラジオボタンの作成と表示文字列の設定

( Written by Tatsuo Ikura )