Récupérer lignes non filtrées d'une jtable

lomaw Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
lomaw Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
J'ai une JTable, avec un TableModel.
J'ai installé un RowSorter avec un RowFilter également sur ma jtable.
Tout va bien, le filtre s'effectue normalement, et la vue de la JTable ne contient que les lignes filtrées, par rapport au model.

Sauf que après pour la suite de mon code, je dois récupérer que les lignes non filtrées et pas la totalité des lignes.
SVP comment faire? J'ai beau cherché mais je n'ai pas trouvé de solution:(
Merci

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Pour partir sur les même bases, il serait bien que tu nous donne ton code existant, ça évitera d'avoir à refaire un code complet, totalement différent du tien, qui serais plus long à développer pour nous, et plus long à comprendre pour toi...
0
lomaw Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord KX, pas de soucis!

this.fromDateChooser = new JDateChooser();
this.toDateChooser = new JDateChooser();
et j'ai ajouté des listeners à ces deux JDateChooser

Voilà la méthode qui permet de filtrer la jtable suivant le critère "date"

protected void dateSearchSettingsChanged () {
/* ====================================================== */
Date fromDate = null;
Date toDate = null;
Date today = new Date();




//Filtrage suivant Dates (juste)

TableRowSorter sorter;
/* ====================================================== */
//TableRowSorter sorter = new TableRowSorter(bordereauTable.getModel());
if (fromDateChooser.getDate() == null && toDateChooser.getDate() == null)
//return;
this.bordereauTable.setRowSorter(null);
else
{
sorter = new TableRowSorter(this.bordereauTableModel);

List filters = new ArrayList<RowFilter<Object,Object>>();

if (fromDateChooser != null){
RowFilter filter1 = RowFilter.dateFilter(RowFilter.ComparisonType.AFTER, fromDate);
filters.add(filter1);
}
if (toDateChooser != null){
RowFilter filter2 = RowFilter.dateFilter(RowFilter.ComparisonType.BEFORE, toDate);
filters.add(filter2);
}

RowFilter filter = RowFilter.andFilter(filters);

sorter.setRowFilter(filter);
this.bordereauTable.setRowSorter(sorter);

}


}

Le résultat est bien obtenu! Maintenant je dois effacer ces lignes obtenues après filtrage et récupérer les lignes non filtrées du modèle.

J'espère que j'étais claire dans mon explication!
Merci d'avance
0