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 :

Effacer le contenu d'un JList


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut Effacer le contenu d'un JList
    Bonjour à tous,

    je dois modifier un code sur une application qui comporte deux boutons:
    un bouton "Add"
    un bouton "Clear"
    un jList

    J'ai ajouté le bouton "Clear" pour effacer le contenu du jList et il fonctionne bien.
    Seulement une fois appuyé sur Clear si j'appuie ensuite sur "Add", il affiche les données qui était avant en plus d'une nouvelle ligne.
    C'est-à-dire qu'il conserve les anciennes données. donc ma liste s'agrandit de plus en plus à chaque fois que j'appuie sur "Clear" puis sur "Add"

    Quelqu'un peut m'aider à résoudre ce problème, merci
    code pour bouton "Add":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) {
        String name = jTextField1.getText();
        currentPanel.createLayer(name);
        ArrayList<String> names = new ArrayList<String>();
        layerModel.clear();
        for(Layer layer : LayerManager.getInstance().getLayers()){
        layerModel.addElement(layer);
        names.add(layer.getName());
        }
     
        jList1.repaint();
        jPanelVizualisationOptions1.update();
        currentPanel.refresh();
        }
    code pour bouton "Clear"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        private void jButtonClearActionPerformed(java.awt.event.ActionEvent evt) {
        DefaultListModel listmodel=(DefaultListModel)jList1.getModel();
        if(evt.getSource()==jButtonClear){
        listmodel.clear();
        }
        }

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Le problème n'est pas avec le model, mais vient du fait que dans ton add, tu ajoutes à ton modèle toute les layer contenues dans ton layerManager.

    Or, dans ton clear, tu ne supprimes absolument pas les layers de ton LayerManager.

    Donc, à chaque add, il te rajoute toutes les layers contenues par le LayerManager, de façon systématique.

    CQFD.

  3. #3
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut
    Merci Sinok,

    j'ai donc modifié le code pour le bouton Clear par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void jButtonClearActionPerformed(java.awt.event.ActionEvent evt) {
     
       if(evt.getSource()==jButtonClear){
       layerModel.removeAllElements();
       repaint();
    Mais il n'y a aucun changement.
    comment puis-je empecher d'ajouter un layer.
    avec la removeAll(); cela ne donne rien non plus

    Merci

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ton problème se situe dans le add, sur cette boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(Layer layer : LayerManager.getInstance().getLayers()){
     layerModel.addElement(layer);
     names.add(layer.getName());
    }
    LayerManager.getInstance().getLayers() va te renvoyer toutes tes layers quoi qu'il en soit si tu ne les vire pas au préalable. Et donc, tu vas ajouter toutes ces layer à ton model.

  5. #5
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut
    D'accord mais je suis obligé de garder ses lignes pour ajouter les layers.
    je ne vois pas comment modifier cette boucle.
    par contre j'ai conservé le code pour le bouton Clear.
    je ne l'ai pas changé, j'ai remis comme avant.

    quelle methode pourrais-je utiliser ici, pour dire que quand je fais clear, je dois aussi supprimer les layers.

    pourrais-tu m'aiguiller un plus s'il te plait, meric d'avance.

  6. #6
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut
    Désolé Sinok, je n'ai pas lu ta dernière phrase tout en bas.
    Donc ok je comprends que je dois virer les layers mais si je le fais dans cette boucle, il n'y aucun interêt puisque je vais ajouter puis supprimer aussitôt.

    il faut bien que j'ajoute des layers, je veux juste les virer avec le bouton Clear si je veux réinitialiser la jList des layers.

    A quel endroit du code dois-je les virer ces layers.
    Cette liste est mise à zéro au début du code du bouton Add ce qui est normal.
    mais après je ne vois pas comment faire.

Discussions similaires

  1. Effacer le contenu d une zone de liste
    Par nico5151 dans le forum IHM
    Réponses: 23
    Dernier message: 22/06/2005, 16h50
  2. Effacer le contenu d'un fichier texte...
    Par loupdeau dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2005, 16h28
  3. comment effacer le contenu d'une table ttable
    Par naw dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/07/2004, 17h13
  4. Comment effacer le contenu d'une scrollbox???
    Par Leclair2000 dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/07/2004, 17h34
  5. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 05h47

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