コンボボックスを無効にする

広告

コンボボックスを無効にして操作が一切できなくするように設定する方法を確認します。無効/有効の設定をするにはJComboBoxクラスで用意されている「setEnabled」メソッドを使います。

public void setEnabled(boolean b)

項目を選択できるようにコンボボックスを有効にします。コンボボックスが無効
の場合は項目を選択できず、値をフィールドに入力できません (編集可能な場合)。

パラメータ:
  b - boolean 値。true の場合はコンポーネントは使用可能で、false の場合
    は使用不可

引数には無効か有効かを表すboolean型の値を設定します。「true」であれば有効で「false」であれば無効となります。

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

String[] combodata = {"Swing", "Java2D", "Java3D", "JavaMail"};
JComboBox combo = new JComboBox(combodata);

combo.setEnabled(false);

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JComboBoxTest8.java

import javax.swing.*;
import java.awt.Dimension;
import java.awt.BorderLayout;

public class JComboBoxTest8 extends JFrame{

  public static void main(String[] args){
    JComboBoxTest8 frame = new JComboBoxTest8();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JComboBoxTest8(){
    String[] startTime = {"08:00","09:00","10:00","11:00",
                          "12:00","13:00","14:00","15:00",
                          "16:00","17:00","18:00","19:00"};

    String[] endTime = {"08:00","09:00","10:00","11:00",
                          "12:00","13:00","14:00","15:00",
                          "16:00","17:00","18:00","19:00"};

    JComboBox startCombo = new JComboBox(startTime);
    startCombo.setPreferredSize(new Dimension(80, 30));

    JComboBox endCombo = new JComboBox(endTime);
    endCombo.setPreferredSize(new Dimension(80, 30));
    endCombo.setEnabled(false);

    JPanel p = new JPanel();
    p.add(new JLabel("start:"));
    p.add(startCombo);
    p.add(new JLabel("  end:"));
    p.add(endCombo);

    getContentPane().add(p, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JComboBoxで選択項目を取得する

右側のコンボボックスを無効に設定してあります。無効になったコンボボックスはクリックなどをすることが出来ません。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

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