Jcombobox en cascade

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 966 fois - Téléchargée 15 fois

Contenu du snippet

Cette source montre comment créer deux combobox pour lesquelles les données contenues dans la combobox fille dépendent de l'item selectionné dans la Combobox mère.

Source / Exemple :


package fr.julien.cl;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;

/**

  • <b>Cette classe montre comment utiliser des combobox en cascade</b>
  • <p>
  • Les données contenues dans la combobox fille dépendent de l'item
  • selectionné dans la Combobox mère.
  • </p>
  • @author Julien
  • @version 1.0
*
  • /
public class Lanceur { public static void main(String[] args) { JFrame f = new JFrame("ComboBox en cascade"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(new Dimension(300, 100)); f.setLocationRelativeTo(null); /* Données de la ComboBox de référence */ ComboBoxModel modelMere = new DefaultComboBoxModel(new Object[]{"France", "Espagne"}); /* Données à afficher si l'item de la comboBox de référence est France */ final ComboBoxModel modelFrance = new DefaultComboBoxModel(new Object[]{"Paris", "Marseille", "Lyon", "Toulouse"}); /* Données à afficher si l'item de la comboBox de référence est Espagne */ final ComboBoxModel modelEspagne = new DefaultComboBoxModel(new Object[]{"Madrid", "Barcelone", "Valence"}); final JComboBox mere = new JComboBox(modelMere); final JComboBox fille = new JComboBox(modelFrance); /* L'ItemListener est appelé chaque fois que la sélection change */ mere.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if(mere.getSelectedItem().equals("France")){ fille.setModel(modelFrance); } else if(mere.getSelectedItem().equals("Espagne")){ fille.setModel(modelEspagne); } } }); f.setLayout(new GridLayout(0, 1)); f.add(mere); f.add(fille); f.setVisible(true); } }

A voir également

Ajouter un commentaire

Commentaires

cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246 -
Niveau conception on peut certainement mieux faire mais j'ai posté ce code suite à une question sur le forum. Le but n'est donc pas ici d'être le plus propre possible.
houcinejava
Messages postés
1
Date d'inscription
dimanche 13 mai 2012
Statut
Membre
Dernière intervention
21 mai 2012
-
cest tres simple mais pratiqe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.