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

Fermé
lomaw Messages postés 2 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 1 juillet 2013 - 30 juin 2013 à 19:13
lomaw Messages postés 2 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 1 juillet 2013 - 1 juil. 2013 à 11:49
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
30 juin 2013 à 19:24
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 dimanche 30 juin 2013 Statut Membre Dernière intervention 1 juillet 2013
1 juil. 2013 à 11:49
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