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

Composants Java Discussion :

[JList] actualisation


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut [JList] actualisation
    Bonjour,
    J'ai dans mon jPanel une JList, avec, à coté, un jTextField et un bouton "ajouter". Je souhaiterais que lorsque l'utilisateur entre une donnée dans le champs texte et valide, celle-ci s'ajoute à la jList. Mon pb est que je n'arrive pas à actualiser cette jList.
    Je procède ainsi : j'ajoute le contenu du champs texte à un String[] de nom " tab" contenant les données de la liste. Je fais ensuite ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     jList.setVisible(false);
     jList.removeAll();
     jList = new JList(tab);
     jList.setVisible(true);
    Ca ne marche pas. Savez vous comment je peux faire?
    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut
    j'ai eu le même genre de problème, je sais pas si ça va marcher dans ton cas, mais tu peux toujours essayer :

    essaye de passer par un model

    tu définis un nouveau model :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DefaultListModel model;
    model = new DefaultListModel();
    ensuite tu ajoutes tes données à ce model :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    model.addElement(tab);
    et ensuite tu balance ce model dans ta JList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jList = new JList(model);

    moi ça marche nikel, ke fais ça sur un explorateur de type windows que l'on peut filtrer selon plusieurs types de fichiers....

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    J'imagine que tu l'as pas ajouté au JPanel... Or tu a créée une nouvelle instance. Donc ça ne fonctionne pas en effet.

    Sans creer une autre instance utilise simplement )]setListData

    Cela fait ce que dit le lag mais en une seule fonction...

    Pour ton ajout dans le JPanel tu le fait avant ou apres? Si tu le fait avant, tu n'a pas ajouter la nouvelle JList que tu viens de creer.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut
    Si, j'ai un panel de nom jPanel4 dans lequel j'ai ajouté une jList, un champs texte et un bouton "ajouter". Je souhaiterais actualiser cette jList lorsqu'on clique sur ajouter

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Citation Envoyé par clairette
    Si, j'ai un panel de nom jPanel4 dans lequel j'ai ajouté une jList, un champs texte et un bouton "ajouter". Je souhaiterais actualiser cette jList lorsqu'on clique sur ajouter
    Oui, c'est bien le probleme, c'est que ce n'est pas la bonne. Je suis presque sur. Postes ton code si tu veux plus d'information. La methode de l'API que j'ai posté suffit sans creer de nouvelle instance.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut
    Je te donne une partie de mon code. Dans le constructeur, j'ai mis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      jPanel4.add(new JScrollPane(jListPrises),       new XYConstraints(0, 0, 85, 86));
      jPanel4.add(jPanel5,          new XYConstraints(161, 0, 213, 31));
      jPanel5.add(noPrise, new XYConstraints(49, 6, 63, -1));
      jPanel5.add(OkPrise,     new XYConstraints(113, 4, 48, -1));

    Dans l'action performed du bouton "ajouter" (ou OkPrise), j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    /** ajoute la nouvelle prise à la liste de prises **/
        void OkPrise_actionPerformed(ActionEvent e) {
        jListPrises.removeAll();
        model.addElement(noPrise.getText()); 
        jListPrises = new JList(model); 
        jListPrises.setVisible(true);
      }
    }
    model est déclaré comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DefaultListModel model=new DefaultListModel();
    [/code]

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Comme je te le disais la fonction setListData suffit cf API.

    Autrement ton probleme est simple et s'explique peut etre du fait que tu ne comprenne pas trop les variable d'instance de classe.

    jPanel4.add(new JScrollPane(jListPrises), new XYConstraints(0, 0, 85, 86));
    Ici tu ajoute un JScrollPane a ton JPanel et celui-ci a comme composant interieur la JList pointée par la variable jListPrises.

    jListPrises = new JList(model);
    Ici la variable jListPrises est reutilisée et pointe vers une nouvelle JList (d'ou l'utilisation du mot clef new)
    Mais la JList qui était pointée avant par ta variable n'est pas changée donc l'affichage n'est pas modifié, puisque c'est la JList precedente qui est affichée par le JPanel.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut
    Super! Ca marche! Merci bcp

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

Discussions similaires

  1. Actualisation JList dynamique
    Par SAKDOSS dans le forum Composants
    Réponses: 1
    Dernier message: 08/12/2011, 22h37
  2. JList actualiser le contenu
    Par robinou59 dans le forum Composants
    Réponses: 3
    Dernier message: 14/12/2010, 12h29
  3. [SWING] Probleme actualisation Jlist
    Par MaxiMax dans le forum Composants
    Réponses: 1
    Dernier message: 24/01/2006, 10h21
  4. [CR7]Actualisation des données depuis VB
    Par elifqaoui dans le forum SDK
    Réponses: 4
    Dernier message: 24/11/2003, 13h44
  5. Actualisation d'une liste "dépendante".
    Par Trilby dans le forum ASP
    Réponses: 6
    Dernier message: 19/11/2003, 18h39

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