ホームページ >Java >&#&チュートリアル >Java で動的に設定された JComboBox を作成するにはどうすればよいですか?

Java で動的に設定された JComboBox を作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-13 18:09:11685ブラウズ

How Can I Create Dynamically Populated JComboBoxes in Java?

動的データ表示用の対話型 JComboBoxes

このプログラミング シナリオでは、コースとそれに対応するオプションの構造化データ セットが表示されます。 。目標は、最初の JComboBox での選択に基づいてオプションを動的に設定できる 2 つの JComboBox を作成することです。

動的 ComboBox の実装

これを達成するには、次のようにします。オプションのセットごとに DefaultComboBoxModel を使用する必要があります。ユーザーが最初の JComboBox (JComboBox1) から項目を選択すると、選択したオプションに対応する 2 番目の JComboBox (JComboBox2) のモデルを設定します。

実装例

これを示す次の Java コードを考えてみましょう。実装:

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ComboTest extends JPanel implements ActionListener, Runnable {
    // Create JComboBoxes and ComboBoxModels
    private final JComboBox combo1 = new JComboBox(new String[]{"Course 1", "Course 2", "Course 3"});
    private final JComboBox combo2 = new JComboBox();
    private ComboBoxModel[] models = new ComboBoxModel[3];

    public ComboTest() {
        // Initialize ComboBoxModels with corresponding data
        models[0] = new DefaultComboBoxModel(new String[]{"A1", "A2"});
        models[1] = new DefaultComboBoxModel(new String[]{"B1", "B2", "B3", "B4"});
        models[2] = new DefaultComboBoxModel(new String[]{"C1", "C2"});

        // Set initial model for combo2
        combo2.setModel(models[0]);
        this.add(combo1);
        this.add(combo2);
        // Add action listener to listen for selections in combo1
        combo1.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // Get the selected index in combo1
        int i = combo1.getSelectedIndex();
        // Update the model in combo2 with the corresponding model
        combo2.setModel(models[i]);
    }

    // Main method for initializing the GUI
    @Override
    public void run() {
        JFrame f = new JFrame("ComboTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new ComboTest());
    }
}

このアプローチを実装すると、コンボ ボックスに動的に値を入力し、データ オプションを選択するための対話型のユーザー エクスペリエンスを提供できます。

以上がJava で動的に設定された JComboBox を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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