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