Maison >Java >javaDidacticiel >Comment créer des JComboBox dynamiques interconnectées en 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!