ホームページ >Java >&#&チュートリアル >Java で依存選択を含む動的な JComboBox を作成する方法

Java で依存選択を含む動的な JComboBox を作成する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 06:47:22466ブラウズ

How to Create Dynamic JComboBoxes with Dependent Selections in Java?

動的 JComboBoxes: 選択に基づいて依存する ComboBox を設定する

概要

目標は次のとおりです。選択した項目に応じて 1 つのオプション リストが変化する 2 つの動的な JComboBox を作成します。もう一方では。これは、コースや科目などの階層データを表す場合に便利です。

ソリューション

この機能を実装するには、次の手順に従います。

  1. それぞれに DefaultComboBoxModel を作成するSet:

    コースや科目などのオプションのセットごとに個別の DefaultComboBoxModel を作成します。例:

    DefaultComboBoxModel coursesModel = new DefaultComboBoxModel(new String[] {"Course 1", "Course 2", "Course 3"});
    DefaultComboBoxModel subjectsModel1 = new DefaultComboBoxModel(new String[] {"A1", "A2"});
    DefaultComboBoxModel subjectsModel2 = new DefaultComboBoxModel(new String[] {"B1", "B2", "B3", "B4"});
  2. JComboBox2 の初期モデルを設定します:

    JComboBox2 の初期 ComboBoxModel を最初のオプション セットに設定します (この場合、コースの科目1).

    combo2.setModel(subjectsModel1);
  3. JComboBox1 の選択イベントを処理します:

    選択の変更を監視するために、JComboBox1 に ActionListener を追加します。ユーザーがコースを選択すると、そのコースに対応する主題で JComboBox2 の ComboBoxModel を更新します。

    combo1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            int i = combo1.getSelectedIndex();
            combo2.setModel(subjectsModels[i]);
        }
    });

実装例

次のコード スニペットは、ソリューション:

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class DynamicCombos extends JPanel {

    public DynamicCombos() {
        ComboBoxModel[] models = new ComboBoxModel[3];

        models[0] = new DefaultComboBoxModel(new String[] {"Course 1", "Course 2", "Course 3"});
        models[1] = new DefaultComboBoxModel(new String[] {"A1", "A2"});
        models[2] = new DefaultComboBoxModel(new String[] {"B1", "B2", "B3", "B4"});

        JComboBox combo1 = new JComboBox(models[0]);
        JComboBox combo2 = new JComboBox(models[1]);

        combo1.addActionListener(e -> combo2.setModel(models[combo1.getSelectedIndex()]));

        add(combo1);
        add(combo2);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new DynamicCombos());
        frame.pack();
        frame.setVisible(true);
    }
}

結論

DefaultComboBoxModel とイベント処理を活用することで、このソリューションでは、別の JComboBox での選択に基づいて JComboBox を動的に追加できます。この手法は、データが階層的に編成されており、使いやすいインターフェイスで表現する必要がある状況で特に役立ちます。

以上がJava で依存選択を含む動的な JComboBox を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。