ドロップダウンリストで表示可能な最大項目数を設定する

広告

コンボボックスがクリックされてドロップダウンリストが表示された時、デフォルトでは最大で8件のデータを一度に表示することが出来ます。8件以上のデータが登録されている場合にはスクロールバーが自動的に表示されます。

コンボボックスでは一度に表示可能な項目数を設定することが可能です。JComboBoxクラスで用意されている「setMaximumRowCount」メソッドを使います。

JComboBox が表示する最大の行数を設定します。モデル内のオブジェクト数が 
count より大きい場合は、コンボボックスはスクロールバーを使用します。

パラメータ:
  count - スクロールバーを使用しないでリストに表示できる最大の項目数を指
    定する整数値

引数には一度に表示できる最大項目数を表すint型の値を設定します。

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

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

サンプルプログラム

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

JComboBoxTest5.java

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

public class JComboBoxTest5 extends JFrame{

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

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

  JComboBoxTest5(){
    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 combo1 = new JComboBox(startTime);
    combo1.setPreferredSize(new Dimension(80, 30));

    JComboBox combo2 = new JComboBox(endTime);
    combo2.setPreferredSize(new Dimension(80, 30));
    combo2.setMaximumRowCount(5);

    JPanel p = new JPanel();
    p.add(new JLabel("start:"));
    p.add(combo1);
    p.add(new JLabel("  end:"));
    p.add(combo2);

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

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

JComboBoxで一度に表示可能な最大項目数を設定する

左側のコンボボックスはデフォルトのままですので一度に表示可能な最大項目数は8件です。

JComboBoxで一度に表示可能な最大項目数を設定する

右側のコンボボックスは一度に表示可能な項目数を5件に設定しました。

JComboBoxで一度に表示可能な最大項目数を設定する

( Written by Tatsuo Ikura )

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