JComboBoxクラスの定義とコンストラクタ

広告

JComboBoxクラスの定義を確認します。クラス図は次のようになっています。

java.lang.Object
  java.awt.Component
    java.awt.Container
      javax.swing.JComponent
        javax.swing.JComboBox

public class JComboBox extends JComponent implements ItemSelectable, ListDataListener, ActionListener, Accessible

JComboBoxクラスはJComponentクラスのサブクラスとなっています。JComponentクラスはSwingで用いられる多くのコンポーネントのベースとなっているクラスです。

JComboBoxクラスのコンストラクタ

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

コンストラクタ
JComboBox()
デフォルトのデータモデルで JComboBox を生成します。
JComboBox(ComboBoxModel aModel)
項目を既存の ComboBoxModel から取得する JComboBox を生成します。
JComboBox(Object[] items)
指定された配列に要素を格納する JComboBox を生成します。
JComboBox(Vector<?> items)
指定された Vector に要素を格納する JComboBox を生成します。

コンストラクタは4つ用意されています。コンボボックスで表示される値を指定するのに配列やVectorを使って指定できます。またデータを管理しているComboBoxModelインターフェースを実装したクラスを元に作成することもできます。

では1番目のコンストラクタを確認してみます。

public JComboBox()

デフォルトのデータモデルで JComboBox を生成します。デフォルトのデータモ
デルは、オブジェクトの空リストです。addItem を使用して項目を追加します。
デフォルトでは、データモデルの最初の項目が選択されます。

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

JComboBox combo = new JComboBox();

サンプルプログラム

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

JComboBoxTest1.java

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

public class JComboBoxTest1 extends JFrame{

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

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

  JComboBoxTest1(){
    JComboBox combo = new JComboBox();

    JPanel p = new JPanel();
    p.add(combo);

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

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

JComboBoxのサンプル

データが登録されていませんのでクリックしても選択可能な値は表示されません。

JComboBoxのサンプル

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

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