Filtrer les données d'un JTable [Résolu]

yoanpg 126 Messages postés dimanche 15 février 2009Date d'inscription 29 avril 2018 Dernière intervention - 8 juil. 2014 à 08:04 - Dernière réponse : yoanpg 126 Messages postés dimanche 15 février 2009Date d'inscription 29 avril 2018 Dernière intervention
- 11 juil. 2014 à 07:56
Bonjour à tous, ;)
J'ai un JTable, contenant des données issues d'une base de données SQLite. Mon but est de filtrer les lignes à afficher dans un JTable, en fonction du contenu de plusieurs JLabels.
Malgré plusieurs heures de recherche, je n'y arrive pas.

J'ai trouvé qu'il y a possibilité de faire un modèle. Mais il faut créer une classe MyTableModel etc. Je trouve que c'est sortit l'artillerie lourde pour un petit truc. Sans compter que je n'y suis pas arriver à l'implémenter correctement :(

Sinon j'ai aussi la possibilité de vider mon JTable et refaire une requête SQL pour compléter à nouveau mon JTable. Mais comment on fait pour vider et re-remplir un JTable existant ?

Y a-t-il une autre méthode plus simple ?

Bref, je ne sais pas trop comment m'en sortir. Pouvez-vous m'aider ??
Merci d'avance :)
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 8 juil. 2014 à 10:01
1
Merci
Salut,

Je pense que ce n'est pas loin de ce que tu cherches à faire :http://codes-sources.commentcamarche.net/source/54071-filtre-sur-les-colonnes-d-une-jtable

Merci cs_Julien39 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 9 juil. 2014 à 08:32
1
Merci
C'est mieux comme ca ?

Table tabPatients = new Table(columns, data);
JScrollPane scrollPatients = new JScrollPane(tabPatients);
GridBagConstraints gbc_scrollPatients = new GridBagConstraints();
gbc_scrollPatients.fill = GridBagConstraints.BOTH;
gbc_scrollPatients.gridx = 1;
gbc_scrollPatients.gridy = 1;
getContentPane().add(scrollPatients, gbc_scrollPatients);


Si ce n'est pas le cas, c'est que tu as un soucis dans tes données : tes tables doivent être vides.

Merci cs_Julien39 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_Julien39
yoanpg 126 Messages postés dimanche 15 février 2009Date d'inscription 29 avril 2018 Dernière intervention - Modifié par yoanpg le 8/07/2014 à 13:30
0
Merci
En effet ça ressemble pas mal.

Cependant, je n'arrive pas à l'intégrer dans mon programme. J'ai copié les classes Table et Filtre. Dans ma classe déjà existante (étendant une JFrame) je crée un JScrollPane contenu dans une case d'un GridBagLayout, puis je crée mon tableau :

JScrollPane scrollPatients = new JScrollPane();
GridBagConstraints gbc_scrollPatients = new GridBagConstraints();
gbc_scrollPatients.fill = GridBagConstraints.BOTH;
gbc_scrollPatients.gridx = 1;
gbc_scrollPatients.gridy = 1;
getContentPane().add(scrollPatients, gbc_scrollPatients);

Table tabPatients = new Table(columns, data);
scrollPatients.setViewportView(tabPatients);


Mais lorsque je lance mon programme, je n'ai pas de tableau :(
Qu'est ce que j'ai oublié ?
Commenter la réponse de yoanpg
yoanpg 126 Messages postés dimanche 15 février 2009Date d'inscription 29 avril 2018 Dernière intervention - 9 juil. 2014 à 08:43
0
Merci
Non ça ne change rien :(

Et j'ai testé le contenu de columns et data, ainsi que le contenu de enregistré dans ma classe Table, et il y a des infos.

Est-ce qu'il ne faut pas faire quelque chose en plus pour faire afficher Table sous forme de JTable ?
Commenter la réponse de yoanpg
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 9 juil. 2014 à 09:01
0
Merci
Tu dois avoir un problème avec le JScrollPane dans ce cas, essayes de l'enlever dans un premier temps, tu devrais voir ta table.
Commenter la réponse de cs_Julien39
yoanpg 126 Messages postés dimanche 15 février 2009Date d'inscription 29 avril 2018 Dernière intervention - 11 juil. 2014 à 07:56
0
Merci
Bon finalement je m'en suis sorti autrement, en recréant un nouveau JTable à chaque fois que j'appuie sur une touche. J'espère que ce sera assez rapide même quand il y aura beaucoup d'enregistrement.
Merci de ton aide.
Bonne journée
Commenter la réponse de yoanpg

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.