IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Liaison de 2 combo box


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut Liaison de 2 combo box
    Bonjour à tous

    Je cherche à lier 2 combobox. J'aimerais réaliser un formulaire avec choix de la région et de la ville et que lorsqu'une région est sélectionnée, seule les villes de cette région s'affichent dans le combobox associé.

    Merci pour vos réponses.

  2. #2
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par Zacco
    Bonjour à tous

    Je cherche à lier 2 combobox. J'aimerais réaliser un formulaire avec choix de la région et de la ville et que lorsqu'une région est sélectionnée, seule les villes de cette région s'affichent dans le combobox associé.

    Merci pour vos réponses.

    mettre un listener sur la première combobox : un ActionListner je pense

    et dans ce listener envoyer la bonne liste dans la seconde combobox

  3. #3
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    J'ai utilisé un ActionListener pour vérifier que la sélection se faisait correctement ds le premier combobox avec un JLabel. La ça marche sans souci.

    Mais le problème c'est justement que je ne comprends pas comment modifier le contenu de ma seconde combobox (celle des villes) en fonction de la région sélectionnée...

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Sans code c'est pas facil.
    D'ou viennent les villes (liste, vector,..) et comment sont associé les régions ?

    Peut être que ca va t'aider mais une solution pourrait etre trouvée si ton listener des villes connait les régions.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    Mes villes et mes régions viennent de deux tableaux mais j'aimerais plutôt les récuperer depuis une base de données (encore un problème pour moi ).

    Comment est ce que je peux associer mes villes et mes régions ??

    P.S. : J'avais oublié de préciser que j'utilise NetBeans mais je ne me sers pas de l'assistant.

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Tu peux essayer un trux de ce genre (Attention: code non testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    comboBox1.addActionListener(new ActionListener(){
      String[] cities = getCities(comboBox1.getSelectedItem());
      ComboBoxModel model = new DefaultComboBoxModel(cities);
      comboBox2.setModel(model);
    });
    Il ne s'agit en fait que d'une implémentation (partielle) de ce qu'a dit Lady

  7. #7
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    Merci mais pour utiliser ce code je dois relier mes villes et mes régions mais je ne sais pas le faire non plus.
    Est que c'est c'est possible avec 2 tableaux à une entrée (1 pour les villes, 1 pour les régions)? ou est qu'il faut créer un tableau à 2 entrées? Quelle est la solution la plus simple ?

  8. #8
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Le mieu est que tu creer une ArrayList contenant des objet Region et dans chaque objet Région tu a un ArrayList de Villes

    J'espere etre claire en fait tu fait une liste d'objet region chaque objet region contenant une liste de ville

    du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    List <Region> regionList = new ArrayList<Region> ()
     
    //L'objet region pouvant ressembler à : 
    public class Region {
     
    private String nomRegion;
     
    private List <String> villeList = new ArrayList <Styring> ()
     
     
    public Region() {
    //puis tu initialise tout cela comme tu le souhaite
    }
     
    public void addVille(String ville) {
    villeList.add(ville);
    }
     
    public String getName() {
    return nomRegion;
    }
     
    public void setName(String s) {
    nomRegion=s;
    }
    }
    //Attention j'ai pas compiler le code

    Ensuite une fois que tu sais la region selectionnée c'est facile de mettre ce qu'il faut dans tes villes puisqu'il te suffit de lister le ArrayList ville de ton objet Region.

    ++

  9. #9
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    Merci guis14. Je vais essayer tout de suite.

  10. #10
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    Je ne dois pas avoir compris le principe des ArrayList puisque je n'arrive pas à les remplir!

    Quelqu'un peut-il m'expliquer comment les utiliser?

  11. #11
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    d'ailleur je pense a un truc en passant si tu veux que tes ville soit classée automatiquement par ordre alphabetic utilise un SortedSet au lieu de l'ArrayList et le classement sera fait automatiquement

    ++

    Peux tu nous donner l'endroit de ton code ou sa coince sinon c'est pas facile...

  12. #12
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    Je mets mon code , j'ai pas de problème dans l'execution du code mais comme je suis débutant et j'avoue être un peu perdu pour intégrer vos propositions à mon code.
    Je sais utiliser un ActionListener par contre le ArrayList je ne comprend pas comment il marche.


    public class Ville extends JFrame implements ActionListener {

    private JPanel container = null ; //Déclaration de l’objet JPanel
    private FlowLayout layout = null ; //Déclaration de notre layout
    private JLabel ChoixRegion = null ;
    private JLabel ChoixVille = null ;
    private JComboBox ListeRegion = null ;
    private Object[] Region = new Object[] {"Alsace","Bouches-du-Rhone"};
    private JComboBox ListeVille = null ;
    private Object[] Ville = new Object[] {"Aix","Colmar","Marseille","Strasbourg"};
    /** Creates a new instance of FenetreAvecTexte */

    public Ville() {
    super() ;
    build() ;
    }

    private void build(){
    this.setContentPane(getContainer());
    this.setTitle("Choix de la ville");
    this.setSize(275,200);
    this.setLocationRelativeTo(null);
    this.setResizable(false) ;
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args){
    Ville gui = new Ville();
    gui.setVisible(true);
    }

    private JPanel getContainer(){
    layout = new FlowLayout();
    layout.setAlignment(FlowLayout.LEFT);

    container = new JPanel() ;
    container.setLayout(layout);

    ChoixRegion = new JLabel("Choisissez la région");
    ChoixRegion.setPreferredSize(new Dimension(200,25));
    container.add(ChoixRegion);

    ListeRegion = new JComboBox(Region) ;
    ListeRegion.setPreferredSize (new Dimension(100,25)) ;
    container.add(ListeRegion) ;

    ChoixVille = new JLabel("Choisissez la ville");
    ChoixVille.setPreferredSize(new Dimension(200,25));
    container.add(ChoixVille);

    ListeVille = new JComboBox(Ville) ;
    ListeVille.setPreferredSize (new Dimension(100,25)) ;
    container.add(ListeVille) ;


    return container ;
    }
    public void actionPerformed(ActionEvent e) {

    }
    }

  13. #13
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Un ArrayList c'est un tableau dynamique dont le nombre de case augmente avec le nombre de chose que tu met dedans. Apres dans chaque case tu y met ce que tu veux (regarde la javadoc)

    je vais zyeuter ton code de plus pret

  14. #14
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Bon alors il y a bp a redir je sais pas trop par ou commencer,

    Pkoi tu fait implementer Ac tionListener a ta JFrame alors que tu veux mettre un ActionListener sur tes ComboBox ?

    Tu n'est pas obliger d'assigner a Null les variable que tu n'initialise pas
    Ensuite tu ne creer pas tes tableau Object[] Region = new Object[] {...} mais Object[] region = new String[] {...}
    Ensuite si tu procède de la sorte ton programme charge une fois pour toute les donnée au lancement il n'y a donc rien de dynamique
    Ensuite comme je te le disait il faudrai que tu creer un objet Region qui contient l'ensemble des ville concerné par une région CF le code que je t'ai donnée

    En fait ce que tu souhaites faire n'est vraiment pas compliqué mais tu t'engage sur un chemin tres tres tortueux et un peux a coté des concept java avec le genre de code que tu propose. Il faut vraiment penser objet en java

  15. #15
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut
    ok merci guis14 je vais tout reprendre.

Discussions similaires

  1. modification d'un combo box
    Par bourguy dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2005, 17h14
  2. Réponses: 2
    Dernier message: 23/06/2004, 14h56
  3. [VB.NET] Choisir les valeurs des items d'un combo box?
    Par Eithelgul dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2004, 11h13
  4. Réponses: 2
    Dernier message: 11/05/2004, 12h17
  5. Combo box et liste de valeurs contenues dans ma table
    Par TieumB dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/04/2004, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo