Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJComboBoxとJListの違いとは?特徴とサンプルコードで解説

Java SwingのJComboBoxドロップダウンリストを表示するコンポーネントで、ユーザーは一度に必ず1つの項目だけを選択します。一方、JListは複数の項目(行)を一覧形式で表示し、ユーザーが複数の項目を同時に選択できる機能も備えています。

JComboBoxの主な特徴

  • JComboBoxは、編集可能(editable)にも読み取り専用にも設定できます。
  • ユーザーの操作を処理するには、ActionListenerChangeListenerItemListenerなどのインターフェースを使用します。
  • getSelectedItem()メソッドを使うと、コンボボックスで選択または入力された項目を取得できます。
  • setEditable()メソッドを使うと、コンボボックスのテキスト入力部分の有効/無効を切り替えられます。
  • 配列やVectorからJComboBoxのインスタンスを作成できます。多くの場合、要素の操作にはComboBoxModelを使用します。

JComboBoxのサンプルコード

import java.awt.*;
import javax.swing.*;
public class JComboBoxTest extends JFrame {
    JComboBoxTest() {
        setTitle("JComboBox Test");
        String country[] = {"India","Aus","Singapore","England","Newzealand"};
        JComboBox jcb = new JComboBox(country);
        setLayout(new FlowLayout());
        add(jcb);
        setSize(300, 250);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    public static void main(String[] args) {
        new JComboBoxTest();
    }
}

実行結果

JavaのJComboBoxとJListの違いとは?特徴とサンプルコードで解説

JListの主な特徴

  • JListは、単一選択複数選択のどちらのモードにも対応したコンポーネントです。
  • JListクラス自体はスクロールバーをサポートしていません。スクロールバーを追加するには、JScrollPaneクラスをJListクラスと組み合わせて使用します。JScrollPaneがスクロールバーを自動的に管理してくれます。
  • getSelectedIndex()メソッドは、最初に選択された項目のインデックスを返し、何も選択されていない場合は「-1」を返します。また、getSelectedIndexes()メソッドは、選択された各項目のインデックスを格納した配列を返します。何も選択されていない場合、この配列は空になります。
  • getSelectedValue()メソッドは、最初に選択された項目を返し、何も選択されていない場合はnullを返します。
  • DefaultListModelクラスは、リストモデルのシンプルな実装を提供しており、JListコントロールに表示される項目の管理に利用できます。

JListのサンプルコード

import java.awt.*;
import javax.swing.*;
public class JListTest extends JFrame {
    JListTest() {
        setTitle("JList Test");
        DefaultListModel dlm = new DefaultListModel();
        dlm.addElement("India");
        dlm.addElement("Aus");
        dlm.addElement("England");
        dlm.addElement("Singapore");
        JList list = new JList();
        list.setModel(dlm);
        setLayout(new FlowLayout());
        add(list);
        setSize(350,275);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    public static void main(String args[]) {
        new JListTest();
    }
}

実行結果

JavaのJComboBoxとJListの違いとは?特徴とサンプルコードで解説

  1. JavaのJFrameとJDialogの違いとは?特徴と使い分けを解説

    JavaのSwingには、ウィンドウを表示するためのトップレベルコンテナとしてJFrameとJDialogが用意されています。どちらもよく似た役割を持ちますが、動作や用途には重要な違いがあります。この記事では、それぞれの特徴をサンプルコードとともに解説し、最後に使い分けのポイントをまとめます。 JFrameとは フレームに追加されたコンポーネントは「コンテンツ」として扱われ、contentPaneによって管理されます。JFrameにコンポーネントを追加する際は、フレーム本体ではなくcontentPaneに対して追加する必要があります。 JFrameは、タイトル、境界線、(オプションで)メニュ

  2. JavaのGridLayoutとGridBagLayoutの違いを徹底解説!特徴と使い分けのポイント

    JavaのAWT/Swingには複数のレイアウトマネージャーが用意されていますが、その中でもGridLayoutとGridBagLayoutは、コンポーネントを格子状(グリッド)に配置するという点でよく似ています。しかし、両者には重要な違いがあります。 GridLayoutは、すべてのコンポーネントを矩形のグリッド内に配置し、領域を同じサイズの長方形に分割して、各コンポーネントをそれぞれのセルの中に収めます。一方、GridBagLayoutは柔軟性の高いレイアウトマネージャーであり、コンポーネントのサイズを揃えることなく、縦方向・横方向に整列させて配置できます。各GridBagLayoutオブ