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

 Java Discussion :

JComboBox qui ne se met pas à jour


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 42
    Points : 37
    Points
    37
    Par défaut JComboBox qui ne se met pas à jour
    Bonjour,

    J'ai un petit souci avec un JComboBox.
    Je montre mon interface:
    Nom : Transfert.jpg
Affichages : 105
Taille : 23,9 Ko
    Nom : transfert_2.jpg
Affichages : 141
Taille : 14,0 Ko
    L'idée est que lorsque CBX_ClasseOrigine contient une classe de niveau 5eme (5A, 5B,...) alors CBX_ClasseNouvelle me propose les classes de même division. Pareil si c'est un niveau 4eme,3eme,...
    Dans la première image on voit que cela ne fonctionne pas alors que dans la seconde oui.
    En fait lorsque j'ouvre le logiciel pas de problème: à chaque changement d'item dans CBX_ClasseOrigine il y a mise à jour dans CBX_ClasseNouvelle.
    Le souci survient lorsque j'ajoute ou enlève une classe via mon interface.
    A ce moment CBX_ClasseNouvelle ne se met pas à jour alors que les deux autres CBX pas de problème: si j'enlève une classe elle disparait de CBX_ClasseOrigine.
    Je mets ci-dessous le code qui me permet de mettre à jour du dernier JComboBox en fonction de la sélection du premier:
    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
    if(e.getSource()==CBX_ClasseOrigine){
                    
                    if(CBX_ClasseOrigine.getItemCount()!=0){
                        
                        CBX_Eleve.removeAllItems();
                        CBX_ClasseNouvelle.removeAllItems();
                        String classeOrigine = CBX_ClasseOrigine.getSelectedItem().toString();
                        ArrayList<String> liste = new ArrayList<>();
                        Collection<Eleve> c = L_Classes.obtenirListeClasses().get(classeOrigine).quelleListe().values();
                        for(Eleve eleve : c){
                            liste.add(eleve.nom+"  "+eleve.prenom);
                        }
                        Collections.sort(liste);
                        for(int j=0;j<liste.size();j++){
                           CBX_Eleve.addItem(liste.get(j));
                        }
                       
                        char division = classeOrigine.charAt(0);
                        
                        for(int i=0; i<tab_Classes.length;i++){
                             if(tab_Classes[i].charAt(0)==division){
                                  CBX_ClasseNouvelle.addItem(tab_Classes[i]);
                                  jop_Test.showMessageDialog(this, tab_Classes[i]); <<<<<<TEST>>>>>>>>>
                              }
                        }
                        CBX_ClasseNouvelle.setSelectedIndex(0);
                    }
                    else CBX_ClasseNouvelle = new JComboBox<>();
                }
    Ce qui m'intrigue c'est que le changement d'item dans CBX_ClasseOrigine n'entraine pas de changement dans le dernier JComboBox.
    J'ai placé pour tester un JOptionPane (jop_test) pour tester si ca passait bien dans la boucle et si mon tabclasse (qui contient toutes les classes enregistrées) était à jour et bien.......je passe dans la boucle et tout est à jour. Et pourtant mon CBX_ClasseNouvelle.addItem(tab_Classes[i]) n'ajoute rien !
    Du mal à comprendre mon souci.
    J'ai essayé avec le pas à pas pour voir mes variables mais j'ai du mal à gérer cela.
    Je ne comprends pas trop mon problème.
    Comment je peux passer dans la boucle qui met à jouer mon ComboBox et ne pas voir les addItem faire leur boulot?
    Merci par avance.

    PS: je cherche, je cherche et je cherche. Je suis tombé sur la notion de revalidate. En gros rafraichir c'est ca? Ca pourrait expliquer pourquoi un changement n'est pas pris en compte si je ne relance pas?
    Mais pourquoi alors mon premier JComboBox est à jour dans ce cas?
    Si quelqu'un à des idées....

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 42
    Points : 37
    Points
    37
    Par défaut
    Personne n'a d'idées apparemment.
    J'ai demandé à la console de m'afficher l'item enregistré en théorie et le nombre total en théorie d'item à chaque passage dans la boucle.
    Nom : transfert3.jpg
Affichages : 107
Taille : 83,0 Ko
    Je constate dans la console qu'à chaque changement d'item de mon premier JComboBox en théorie
    il y a bien ajout d'item. Mais mon JCombobox n'affiche toujours pas ce qu'il me dit recevoir!
    En fait n'est affiché que ce qui était affiché avant que je change de fenêtre pour retirer/ajouter une classe.
    C'est comme figé en pratique alors qu'en théorie la mise à jour s'effectue.
    Je débute donc n'ai pas idée des erreurs plus ou moins classiques qui expliqueraient cela.
    Si quelqu'un a des idées.....
    En attendant je me remets dessus !

Discussions similaires

  1. Réponses: 14
    Dernier message: 08/07/2008, 11h36
  2. [MySQL] Date qui ne se met pas à jour
    Par caro93150 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/06/2008, 21h01
  3. AJAX - Formulaire qui ne se met pas à jour
    Par wenijah dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/11/2007, 11h31
  4. Réponses: 2
    Dernier message: 05/10/2006, 09h24
  5. Combobox.text qui ne se met pas à jour
    Par davels dans le forum Delphi
    Réponses: 6
    Dernier message: 21/08/2006, 11h29

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