チェックボックスが選択か非選択かを取得する

チェックボックスはクリックされるごとに選択と非選択を切り替えます。ここではチェックボックスが現在選択か非選択かを取得する方法について解説します。

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

選択か非選択かを取得する

チェックボックスが選択か非選択かを取得するには JCheckBox クラスの親クラスである AbstractButton クラスで用意されている isSelected メソッドを使います。

public boolean isSelected()

ボタンの状態を返します。 トグル・ボタンが選択されている場合はtrue、そうでない場合はfalseを返します。

戻り値:
トグル・ボタンが選択されている場合はtrue、そうでない場合はfalse

メソッドを実行すると、対象のチェックボックスが選択の場合には true 、非選択の場合には false が返されます。

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

JCheckBox check = new JCheckBox("Travel");
boolean status = check.isSelected();

サンプルプログラム

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

import javax.swing.JFrame;
import javax.swing.JCheckBox;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

class JSample13_1 extends JFrame implements ActionListener{

  JCheckBox[] check;

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

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

    check = new JCheckBox[3];
    check[0] = new JCheckBox("Travel");
    check[1] = new JCheckBox("Movie");
    check[2] = new JCheckBox("Sports");

    JPanel p = new JPanel();
    p.add(check[0]);
    p.add(check[1]);
    p.add(check[2]);

    JButton button = new JButton("Check");
    button.addActionListener(this);

    JPanel button_panel = new JPanel();
    button_panel.add(button);

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

  public void actionPerformed(ActionEvent e){
    StringBuilder sb = new StringBuilder();

    for (int i = 0 ; i < check.length; i++){
      sb.append(check[i].getText());

      if (check[i].isSelected()){
        sb.append("[Select]");
      }else{
        sb.append("[Not Select]");
      }

      sb.append(" ");
    }

    JOptionPane.showMessageDialog(this, new String(sb));
  }
}

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

javac JSample13_1.java

選択か非選択かを取得する(1)

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

java JSample13_1

チェックボックスを 3 つ、ボタンを 1 つ追加しました。

選択か非選択かを取得する(2)

チェックボックスをいくつか選択してから画面下のボタンをクリックしてください。

選択か非選択かを取得する(3)

すべてのチェックボックスが選択か非選択かを取得してダイアログに表示します。

選択か非選択かを取得する(4)

-- --

チェックボックスが現在選択か非選択かを取得する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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