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 :

JComboBox pas à jour (un peu en fait)


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut JComboBox pas à jour (un peu en fait)
    Bonjour,

    Alors j'ai deux panels, le premier qui a une JComboBox et le deuxieme qui a une JTable dont le contenu change en fonction de la JComboBox.

    Ca marche bien tout ça, a un detail pres :

    Ma JComboBox est éditable, c'est à dire que si je selectionne un élément déjà présent, ma JTable n'aura pas de ligne supplémentaire, mais juste une modif sur une ligne existante. Si j'écrit moi même l'élément dans ma JComboBox, une ligne supplémentaire apparait, et donc ma JComboBox est sencée pouvoir proposer un choix de plus : l'item juste créé.

    Or non seulement il n'apparait pas, mais en plus la liste est vide!

    Ce problème n'apparait que lors de la création d'un élément, si j'en choisi un déjà entré, tout va bien.

    Le pire c'est que lorsque j'affiche le nombre d'élément de ma combobox, il est correct!

    J'ai tenté les revalidate() et autre repaint() mais rien n'y fait.


    Ai-je oublié un truc?
    aidez moi, je risque ma vie... (bon ok pas trop en fait)

  2. #2
    Membre éprouvé Avatar de sylviadesbois
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut
    Je comprends pas trop ton problème tu peux mettre un peu de code stp?
    Ma JComboBox est éditable, c'est à dire que si je selectionne un élément déjà présent, ma JTable n'aura pas de ligne supplémentaire, mais juste une modif sur une ligne existante. Si j'écrit moi même l'élément dans ma JComboBox, une ligne supplémentaire apparait, et donc ma JComboBox est sencée pouvoir proposer un choix de plus : l'item juste créé.
    Comprends pas
    tu fait comment pour ajouter quelquechose dans ta JComboBox?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Apparemment tu sais comment récupérer la valeur tappée par l'utilisateur dans ta combobox.

    Donc, il te suffit de rajouter cette valeur dans le modèle de données de ta combobox : DefaultComboBoxModel.addElement() devrait suffire à moins que tu ais implémenté un modèle de données particulier (dans ce cas là, ne pas oublier les fireXXX).

  4. #4
    Membre éprouvé Avatar de sylviadesbois
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut
    tu fait comment pour ajouter quelquechose dans ta JComboBox?
    Merci d'avoir posté ton message, j'aurais jamais trouvé le JComboBox.setEditable(true) de moi-même (ou après 10 ans de code).
    Désolée si je peux pas t'aider pour l'instant mais en tout cas merci.

  5. #5
    Membre confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    C'est vrai que j'ai pas ajouté l'élément au modèle mais direct à mon vecteur qui me sert de référence...

    Je vais tester ça demain.

    Merci en tout cas.

  6. #6
    Membre confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    Bon, je viens de tester ta méthode yannick mais ça marche pas, en fait mon modèle affiche également le bon nombre d'élément au bon moment. Je pense que c'est un problème de rafraichissement, comme souvent en SWING/AWT...

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Si ce n'est qu'un problème de rafraîchissement : tu peux appeler sur le modèle de ta table un fire....() pour notifier les vues de la mise à jour du modèle.

  8. #8
    Membre confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    Oui mais c'est quand même bizar que lorsque je n'ajoute pas d'élément ça marche, et surtout que quand ça foire, ça n'affiche rien du tout...
    Ca serait un probème de rafraichissement occasionnel?

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Citation Envoyé par docv266
    Ca serait un probème de rafraichissement occasionnel?
    Cela m'étonnerait à mon avis !

    Soit tu utilise bien le modèle de base et tu passes par un addElement(), auquel cas il ne devrait normalement jamais y avoir de problème.

    Soit tu utilises ton propre modèle et dans ce cas tu ne fais pas les bons appels aux fireXXX(), ou en tout cas pas aux bons moments.

  10. #10
    Membre confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    Cooooool!

    C'est bon ça marche, j'ai fait un addItem(), pas un addElement(), tu as surement confondu. En tout cas merci beaucoup, t'es un prince!

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    De rien

    Mais c'est bizarre, puisque le addItem de JComboBox appelle bien un addElement sur son modèle... enfin tant que ça marche !

    Mais il est "plus propre" de mettre à jour le modèle directement pour avoir une appli plus propre elle aussi (important le jour où tu décides de changer ta vue : tu pourras conserver ton modèle et les controleurs).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JComboBox qui ne se met pas à jour
    Par kerlouan dans le forum Débuter
    Réponses: 1
    Dernier message: 23/04/2014, 21h00
  2. Avast - Mise à jour qui ne se fait pas
    Par Daejung dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 04/06/2012, 11h08
  3. [JComboBox] Mmise à jour contenu
    Par java_math dans le forum Composants
    Réponses: 4
    Dernier message: 16/07/2008, 18h27
  4. Réponses: 13
    Dernier message: 04/04/2007, 01h37
  5. [CR 8.5] Objet ole lié (BMP) ne se remet pas à jour .
    Par rodrigue50 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 12/02/2004, 10h43

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