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 :

[AWT] dépendances de 2 listes déroulantes


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Points : 64
    Points
    64
    Par défaut [AWT] dépendances de 2 listes déroulantes
    Bonjour tout le monde, voila je realise un programme java relie a une base de données.
    j'ai une liste deroulante(composant Choice) qui affiche les promotions de ma base de données et une autre qui affiche les options qui sont presentes dans ces promotions.
    J'aimerais que lorsque je choisi une promotion, ma 2eme liste deroulante se mette automatiquement a jour et que seul les option presente dans l'année selectionner soient affiché
    J'ai essayé un truc mais cela ne fontionne pas.
    Voila mon code, si vous pouvez m'aider...

    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
    28
    29
    30
    	String sql="";
    		try 
    		{
    			Statement requete = ConnectionBD.createStatement();
    			sql="select DISTINCT annee from etudiant ORDER BY annee DESC";
    			ResultSet resultat = requete.executeQuery(sql);
    			while (resultat.next()) 
    			{
    				annee.ajoute(resultat.getString(1));
    			}
    			try 
    		{	
    			Statement requete1 = ConnectionBD.createStatement();
    			sql="select DISTINCT * from options,etudiant WHERE etudiant.code_option=options.code_option AND annee=+resulta.getString(1)+" ORDER BY options.code_option";
    			ResultSet resulta = requete1.executeQuery(sql);
    			while (resulta.next()) 
    			{
    				option.ajoute(resulta.getString(1)+" - "+resulta.getString(2));
     
    			}
    		}
    		catch (SQLException se) 
    		{
    			JOptionPane.showMessageDialog(this,sql+"\n"+se.getMessage(),"Chargement de la table impossible !",JOptionPane.ERROR_MESSAGE);
    		}
    		}
    		catch (SQLException se) 
    		{
    			JOptionPane.showMessageDialog(this,sql+"\n"+se.getMessage(),"Chargement de la table impossible !",JOptionPane.ERROR_MESSAGE);
    		}

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    salut !
    j'ai un peu de mal à comprendre ton code ...
    car il manque beaucoup de chose dans ton code pour arriver à ce que tu veux faire.
    deja un petit conseil, je pense que tu utilise des JComboBox ? ou quelque chose comme ca, pour la charger tu peux utiliser des model qui sont des listes des élements que tu vas avoir ta ta liste déroulante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comboBos.setModel(new DefaultComboBoxModel(listIssuBDD));
    et ensuite ta liste tu la récupère comme tu la fait dans ton code :
    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
    28
    29
    30
    31
     
    public List getListForAnnee() {
        String sql="";
        List list = new ArrayList();
        try {
            Statement requete = ConnectionBD.createStatement();
            sql="select DISTINCT annee from etudiant ORDER BY annee DESC";
            ResultSet resultat = requete.executeQuery(sql);
            while (resultat.next()) {
    	list.add((String)resultat.getString(1));
            }
            return list;
        } catch (SQLException se) {
            JOptionPane.showMessageDialog(this,sql+"\n"+se.getMessage(),"Chargement de la table impossible !",JOptionPane.ERROR_MESSAGE);
        }
    }
    public List getListForOption(String annee) {
        String sql="";
        List list = new ArrayList();
        try {	
            Statement requete1 = ConnectionBD.createStatement();
            sql="select DISTINCT * from options,etudiant WHERE etudiant.code_option=options.code_option AND annee="+annee+" ORDER BY options.code_option";
             ResultSet resulta = requete1.executeQuery(sql);
             while (resulta.next()) {
    	list.add(resulta.getString(1)+" - "+resulta.getString(2));
              }
              return list;
        } catch (SQLException se) {
            JOptionPane.showMessageDialog(this,sql+"\n"+se.getMessage(),"Chargement de la table impossible !",JOptionPane.ERROR_MESSAGE);
        }
    }
    Maintenant il faut que tu relis tes listes ensembles, c'est à dire que tu dois mettre un listener sur le liste déroulante annee, pour qu'a chaque modification elle mette a jour la liste deroulante contenant les options...
    je ne sais pas si c'est clair...
    sinon aussi tu mélange des partie assez métier -> communication avec la base de données avec un affichage d'erreur ? JOption... c'est tres moche, peut être mieux vaut générer une exception, et dans ta partie interface tu la récupère et tu la traite comme tu veux, comme par exemple en affichant des JOptionPane.showMessageDialog...
    bon courage

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Points : 64
    Points
    64
    Par défaut
    Desole mais je ne comprend pas ce que tu veut dire, j'utilise des composants Choice comme expliqué precedemment
    Et pour le probleme des exception j'utilise deja des showmessagedialog

    désolé je suis novice, c'est la premiere fois que j'utilise une base de données en java...
    Et comment pourrai je faire un ecouter sur ma liste droulante année???
    merci de votre aide

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    désolé je ne connaissai pas le composant Choice.
    mais j'ai vu plus haut que tu avais un soucis avec une JTable, donc tu mélange du AWT et du SWING dans le meme projet ?
    sinon pour ajouter un listener sur ta liste j'ai vu que la classe Choice avait cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addItemListener(ItemListener l)
    a toi de découvrir comment l'utiliser ...

Discussions similaires

  1. [AC-2007] Dépendance Zone de liste déroulante
    Par Fontaine_CLB dans le forum IHM
    Réponses: 22
    Dernier message: 26/11/2014, 10h14
  2. Réponses: 3
    Dernier message: 30/12/2008, 17h11
  3. Dépendance entre zone de listes déroulantes
    Par aurore1008 dans le forum IHM
    Réponses: 33
    Dernier message: 16/06/2008, 10h21
  4. Dépendance entre 2 listes déroulantes
    Par Halzard dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/05/2007, 16h26
  5. [VB.Net] Dépendance entre le contenu de deux listes déroulantes
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/02/2007, 15h35

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