チェックボックスの選択/非選択の切り替え

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

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

選択か非選択か設定する

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

public JCheckBox(String text,
boolean selected)

テキスト付きのチェックボックスを生成し、それが初期状態で選択されるかどうかを指定します。

パラメータ:
text - チェックボックスのテキスト。
selected - 初期選択状態を示すboolean値。 trueの場合、チェックボックスが選択される

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

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

JCheckBox check = new JCheckBox("Travel", true);

上記の場合、最初から選択された状態でチェックボックスが作成されます。

-- --

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

public void setSelected(boolean b)

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

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

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

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

JCheckBox check = new JCheckBox("Travel");
check.setSelected(true);

サンプルプログラム

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

import javax.swing.JFrame;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
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);

    JCheckBox check1 = new JCheckBox("Travel");
    JCheckBox check2 = new JCheckBox("Movie", true);
    JCheckBox check3 = new JCheckBox("Sports");
    check3.setSelected(true);

    JPanel p = new JPanel();
    p.add(check1);
    p.add(check2);
    p.add(check3);

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

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

javac JSample2_1.java

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

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

java JSample2_1

チェックボックスを 3 つ追加しました。 2 つ目のチェックボックスにはコンストラクタでチェックボックスの初期値を選択に設定しています。 3 つ目のチェックボックスは作成したあとで選択に設定しています。

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

-- --

チェックボックスの選択/非選択の切り替えを行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。