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 -
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
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
A voir également:
- Récupérer lignes non filtrées d'une jtable
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
2 réponses
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...
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
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