Maison > Java > javaDidacticiel > Comment puis-je créer des JComboBox remplies dynamiquement en Java ?

Comment puis-je créer des JComboBox remplies dynamiquement en Java ?

Linda Hamilton
Libérer: 2024-12-13 18:09:11
original
715 Les gens l'ont consulté

How Can I Create Dynamically Populated JComboBoxes in Java?

JComboBoxes interactives pour l'affichage dynamique des données

Dans ce scénario de programmation, un ensemble de données structurées de cours et leurs options correspondantes vous sont présentés. . Votre objectif est de créer deux JComboBox qui permettent une population dynamique d'options en fonction de la sélection effectuée dans la première JComboBox.

Implémentation dynamique de ComboBox

Pour y parvenir, vous' Vous devrez utiliser un DefaultComboBoxModel pour chaque ensemble d’options. Lorsqu'un utilisateur sélectionne un élément de la première JComboBox (JComboBox1), vous définirez le modèle de la deuxième JComboBox (JComboBox2) pour qu'il corresponde à l'option sélectionnée.

Exemple d'implémentation

Considérez le code Java suivant, qui démontre cette implémentation :

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

Par en mettant en œuvre cette approche, vous pouvez remplir dynamiquement des zones de liste déroulante et offrir une expérience utilisateur interactive pour sélectionner les options de données.

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