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番目のコンストラクタを確認してみます。

デフォルトのデータモデルで 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 )

関連記事 (一部広告含む)