Maison >Java >javaDidacticiel >Comment créer des JComboBox dynamiques interconnectées en Java ?

Comment créer des JComboBox dynamiques interconnectées en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-16 11:24:16811parcourir

How to Create Interconnected Dynamic JComboBoxes in Java?

Comment créer des JComboBox dynamiques

Afin de créer deux JComboBox dynamiques interconnectées, de telle sorte que lorsqu'une valeur est sélectionnée dans le premier JComboBox, le deuxième JComboBox est rempli avec les valeurs correspondantes, suivez ces étapes :

1. Créez un DefaultComboBoxModel pour chaque ensemble de données.
Ce modèle stockera les valeurs qui seront renseignées dans la deuxième JComboBox.

2. Définissez le modèle du deuxième JComboBox sur le modèle correspondant lorsque la valeur du premier JComboBox change.
Cela garantira que le deuxième JComboBox sera rempli avec les valeurs appropriées en fonction de la sélection dans le premier JComboBox.

Exemple :

Le code Java suivant montre comment implémenter ceci fonctionnalité :

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 {

    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() {
        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"});

        combo2.setModel(models[0]);
        this.add(combo1);
        this.add(combo2);
        combo1.addActionListener(this);
    }

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

    @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());
    }
}

Ce code créera un JFrame avec deux JComboBox. Lorsque vous sélectionnez une valeur dans le premier JComboBox, le deuxième JComboBox sera rempli avec les valeurs correspondantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn