選択/非選択の設定

広告

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

コンストラクタで指定

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

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

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

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

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

JCheckBox checkbox = new JCheckBox("チェックボックス", true);

メソッドを使って設定

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

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

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

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

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

JCheckBox checkbox = new JCheckBox();
checkbox.setSelected(true);

上記ではチェックボックスは選択状態となります。

サンプルプログラム

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

SSample2_1.java

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

    JCheckBox ckbox1 = new JCheckBox("Peach", true);
    JCheckBox ckbox2 = new JCheckBox("Apple", false);
    JCheckBox ckbox3 = new JCheckBox("Orange");
    ckbox3.setSelected(true);

    p.add(ckbox1);
    p.add(ckbox2);
    p.add(ckbox3);

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

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

選択/非選択の設定

今回は3つのチェックボックスを作成しました。1つ目と2つ目のチェックボックスは初期状態として選択/非選択を指定し、3つ目のチェックボックスはオブジェクトを作成した後で設定しています。

いずれにしてもユーザーは選択と非選択を後から変更することができます。

選択/非選択の設定

( Written by Tatsuo Ikura )