-
Filtres sur JTable
Bonsoir à tous,
J'ai une application dont une JTable est remplie avec les données contenues dans une table d'une base de données.
Je souhaite pouvoir rendre possible l'application de filtres pour l'affichage des données dans cette JTable.
Je n'arrive pas à me décider pour le filtrage :
1. Dois-je filtrer mes données en exécutant une requête SQL et afficher le résultat dans ma JTable ?
2. Dois-je utiliser les filtres (RowSorter) de la JTable ?
Quels sont les avantages et les inconvénients de ces 2 variantes ? Doit-on en préférer une plutôt que l'autre ou voire même combiner les 2 ?
En termes de performances, de complexité, de charges de données dans le TableModel, etc.
Merci d'avance pour votre aide !
-
Tout dépend du volume de données en fait.
Petit volume (au plus quelque milliers de lignes): Utiliser un TableRowSorter
Volume moyen et gros: filtrer les données au préalable.
Récupérer les données en base à l'intérieur du TableModel est une mauvaise idée en soit, car cela implique de bloquer l'EDT, et ça, c'est mal http://gfx.developpez.com/tutoriel/j...ing-threading/
Par contre tu peux très bien imaginer mettre à disposition des champs de filtrage pour le SGBD qui permettent l'alimentation du TableModel puis un champ de recherche dans la JTable qui filtre sur les résultats au moyen des filters de la JTable (un PatternFilter fera très bien l'affaire).
-
Merci bcp pour la réponse ! Cela semble être une très bonne solution, le fait de combiner les 2 solutions --> Résolu :-)