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 :

Filtre et JTable


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Points : 53
    Points
    53
    Par défaut Filtre et JTable
    Bonjour à tous,

    j'ai rajouté un filtre un mécanisme de filtre sur une jtable permettant de filtrer le contenu de chacune des colonnes sur base d'une sélection.

    Cependant, mon filtre ne fonctionne pas comme je voudrais.
    J'ai différentes checkboxs qui me permettent d'appliquer le tri.

    Ainsi,
    quand checkall = true, j'applique la regex "." pour sélectionner toute les lignes.
    quand checkall = false, j'applique la regex "ZZZZZ" car je suis sur qu'aucune de mes données ne prend cette valeur.
    quand checkBox_i = true, j'applique la regex "regex_i"

    Pour autoriser le filtre multiple sur mes différentes colonnes de ma table, j'utilise la méthode andFilter de RowFilter, avec comme paramètre le tableau contenant le filtre pour chacune de mes colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String regex;		
     
    if(arrayOfValueCheckAll.get(columnIndex))
         regex = ".";
    else
         regex = constructRegex(columnIndex);	
     
    filters.set(columnIndex,RowFilter.regexFilter(regex, columnIndex));
     
    RowFilter<AbstractTableModel,Integer> rff = RowFilter.andFilter(filters);	
    sorter.setRowFilter(rff);
    Mon problème est qu'après avoir décoché checkAll (aucune ligne s'affiche donc ok) et recoché CheckAll, le nombre de lignes affichées est limité aux 7 premières au lieu d'afficher l'ensemble des lignes (une vingtaine).

    De plus, j'ai essayé en retirant l'utilisation du filtre multiple et mes filtres fonctionnent correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sorter.setRowFilter(RowFilter.regexFilter(regex, columnIndex));
    Y a-t-il une utilisation particulière de la méthode andFilter?
    Pourquoi me limite-t-elle l'affiche aux premiers éléments de ma liste dans le cas d'une regex = "."?

    Merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Points : 53
    Points
    53
    Par défaut
    J'ai trouvé l'erreur, elle provenait de mon expression régulière pour le checkAll.
    J'utilisais "." mais il fallait mettre ".*".

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

Discussions similaires

  1. Filtre sur Jtable
    Par hugoclo dans le forum Composants
    Réponses: 2
    Dernier message: 21/11/2014, 03h18
  2. Filtres sur JTable
    Par aliasjcdenton dans le forum Composants
    Réponses: 2
    Dernier message: 06/12/2010, 14h30
  3. Jtable créée avec model et filtre, probleme de tri
    Par pequina dans le forum Composants
    Réponses: 18
    Dernier message: 04/08/2006, 09h24
  4. [JTable] Filtre sur JTable
    Par TheMorpheus dans le forum Composants
    Réponses: 13
    Dernier message: 17/05/2006, 10h55
  5. [Swing][JTable] création d'un filtre d'affichage
    Par TheMorpheus dans le forum Composants
    Réponses: 2
    Dernier message: 25/04/2006, 11h50

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