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
Libérer: 2024-12-16 11:24:16
original
808 Les gens l'ont consulté

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());
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal