ホームページ >Java >&#&チュートリアル >Java で依存選択を含む動的な JComboBox を作成する方法
動的 JComboBoxes: 選択に基づいて依存する ComboBox を設定する
概要
目標は次のとおりです。選択した項目に応じて 1 つのオプション リストが変化する 2 つの動的な JComboBox を作成します。もう一方では。これは、コースや科目などの階層データを表す場合に便利です。
ソリューション
この機能を実装するには、次の手順に従います。
それぞれに 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"});
JComboBox2 の初期モデルを設定します:
JComboBox2 の初期 ComboBoxModel を最初のオプション セットに設定します (この場合、コースの科目1).
combo2.setModel(subjectsModel1);
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 サイトの他の関連記事を参照してください。