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