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 :

Meilleure méthode pour vider une JTable


Sujet :

Composants Java

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Points : 143
    Points
    143
    Par défaut Meilleure méthode pour vider une JTable
    Bonjour la foule !

    Question a priori pas très complexe ...

    Quel est le moyen le plus rapide et le plus "propre" de VIDER complètement une table ?
    -> Attribuer un nouveau model vide ? (je trouve ca moyen moi)
    -> Faire un model.setRowCount(0) ? (je pense que c'est pas très "propre")
    -> Faire une boucle sur les lignes du modele avec un removeRow(0) pour chaque ligne ? (Plus propre mais performance avec 10000 lignes ?)

    Je ne connais que ces éventuelles méthodes ci ... En existe t'il d'autres ? Quelle serait donc la meilleure ?

    Je suis bien sur amené a traiter des énormes masses de données ...

    Merci pour la réponse !

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Utiliser un modèle personnalisé, et non celui par défaut...
    Il suffit d'implémenter TableModel (ou d'étendre AbstractTableModel).

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Points : 143
    Points
    143
    Par défaut
    Ha oui j'avais oublié, j'ai deja mon propre model qui étends AbstractTableModel ...

    Mais comment vider celui la ?

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par JamesP
    Ha oui j'avais oublié, j'ai deja mon propre model qui étends AbstractTableModel ...

    Mais comment vider celui la ?
    Bah si tu utilises ton AbstractTableModel, c toi qui gère les données... Donc un simple tonModel.clear() (selon ton modèle, clear() variera), suivi d'un fireToutAEteSupprimé() pour signaler à la JTable que ça a changé...

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Points : 143
    Points
    143
    Par défaut
    Alors RECTIFIVATION, mon model est un "DefaultTableModel" ...

    Et après recherche ICI : http://javasearch.developpez.com/j2s...ableModel.html

    Pas de CLEAR ou truc du genre ...

    Donc a part vider les lignes 1 à 1 ou alors faire un "setRowCount(0)" (dont je comprends pas trop ce qu'il doit faire derrière) , je vois pas comment faire ...

  6. #6
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par JamesP
    Alors RECTIFIVATION, mon model est un "DefaultTableModel" ...
    D'où ma première réponse...
    Citation Envoyé par ®om
    Utiliser un modèle personnalisé, et non celui par défaut...

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Points : 143
    Points
    143
    Par défaut
    Arf excuse moi, par "modèle personnalisé" je pensais que tu voulais dire "Classe interne que tu as fait qui étends un modèle" ... lol ...

    Mais j'ai trouvé une solution, enfin même 2, mais je vois pas de différence ... La solution etait un peu cachée ... lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modele.getDataVector().clear();
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modele.getDataVector().removeAllElements();
    Je pense que le résultat est le même ... NON ?

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par JamesP
    Arf excuse moi, par "modèle personnalisé" je pensais que tu voulais dire "Classe interne que tu as fait qui étends un modèle" ... lol ...

    Mais j'ai trouvé une solution, enfin même 2, mais je vois pas de différence ... La solution etait un peu cachée ... lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modele.getDataVector().clear();
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modele.getDataVector().removeAllElements();
    Je pense que le résultat est le même ... NON ?
    Ces méthodes ne sont pas correctes, car elles ne signalent pas à la vue que le modèle a changé.

    Et oui, par modèle personnalisé, j'entendais bien un modèle que tu fais toi-même, ceux par défaut de Swing ne sont pas top (surtout qu'ils utilisent des Vector) (c'est vraiment pas dur pour ton cas) :
    J'ai écrit un tuto pr les modèles de listes, c pareil pour les modèles de tables:
    http://rom.developpez.com/java-swingui-models.pdf

  9. #9
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    cf javdoc Vector....
    apparement le removeAllElement remet la taille du Vector à 0 ce que ne fait pas le clear. Sinon le removeAllElement est la methode d'origine du vector. Et quand avec le temps on lui a fait implementer l'interface List il a eut la methode clear en plus(idem pour addElement/add qui sont "presque" la même methode). Vive java!!

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Avril 2005
    Messages : 277
    Points : 143
    Points
    143
    Par défaut
    Okiiiiiiiiiiii

    Merci pour les réponses, pour le moment je vais laisser le "removeAllElements()" et je vais lire la doc PDF un de ces 4 pour ensuite donc faire MON propre MODEL ... ^^

    Merci a vous pour les infos !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2015, 15h44
  2. Réponses: 2
    Dernier message: 21/04/2014, 12h11
  3. Réponses: 4
    Dernier message: 05/12/2012, 20h46
  4. Meilleure méthode pour remplir une liste
    Par kodo dans le forum Général Java
    Réponses: 4
    Dernier message: 15/05/2012, 12h06
  5. Meilleur méthode pour gérer une liste des blocks
    Par smyley dans le forum Algorithmes et structures de données
    Réponses: 41
    Dernier message: 22/07/2008, 02h06

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