Saisie assiste

Fermé
laurent2403 Messages postés 79 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 27 juil. 2013 à 12:12
laurent2403 Messages postés 79 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 28 juil. 2013 à 00:27
Bonjour,


est ce que quelqu'un pourrait me renseigner pour avoir une saisie assiste sur mes textField , j'aimerais que des la saisie du 2eme ou 3eme caractère une fonction me propose une ou plusieurs solutions en fonction du contenue des tables de ma BD .
merci beaucoup .
A voir également:

2 réponses

arthurg95 Messages postés 2421 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 4 juin 2014 341
Modifié par arthurg95 le 27/07/2013 à 13:09
Bonjour,

Tu mets un ActionListener sur le JTextField, je ne sais pas trop comment il s'active, si c'est à la saisie ou quand on clique dessus pour commencer à saisir, enfin tu t'adaptera.

Et à chaque lettre tapé, tu fais un getText() sur ton jTextField, et tu fais une requête SQL qui correspond à tes critères. Et tu affiches les résultats comme tu veux, dans un panneau, sous la saisie, ... Enfin ça c'est de la mise ne forme ;)

Edit : L'action listener se déclanche sur appuie de la touche entrée ;)

Tout est dit, mais comme personne n'écoute il faut toujours répéter
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
27 juil. 2013 à 13:12
Sur le principe je suis d'accord, ce serait donc plutôt un KeyListener sur le JTextFied.

Cependant pour la partie SQL je trouve embêtant de faire des requêtes à chaque fois, ici il y a surement un seul utilisateur donc ça marche mais "en vrai" faire des requêtes sur la base de données à chaque lettre tapée par chaque utilisateur, ça fait beaucoup de requêtes. Il vaudrait mieux faire une seule fois la requête et récupérer tous les mots possibles en cache.
Evidemment cela ne vaut que s'il y a relativement peu de données dans la base, dans le cas contraire, il faut carrément oublier l'idée de l'assistant et se limiter à la recherche du mot complet.
0
arthurg95 Messages postés 2421 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 4 juin 2014 341
27 juil. 2013 à 13:33
Ah c'est sûr que s'il n'y a pas qu'un utilisateur, la BDD ne va pas aimer...
Et oui, tu as raison pour le KeyListener, mais comme je ne savais pas comment l'ActionListener fonctionnait sur le JTextField, je trouve toujours plus simple l'utilisation D'actionListener plutôt que Key, ça évite les problème de focus. Mais bon ici pas le choix.

Donc, oui tu peux récupérer une fois la base à partir de 3 lettres par exemple (tu testes les 3 lettres avec un getText() et un lenght).
Et tu mets toutes les entrées dans une liste ou une table (il faut voir au niveau de l'optimisation pour la recherche ensuite). Et a chaque lettre tapé, tu n'affiches que ceux qui correspondent.

Problème : S'il efface une lettre il faut penser à actualiser, si il efface une des 3 premières lettres il faut refaire la requête !
0
laurent2403 Messages postés 79 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
28 juil. 2013 à 00:27
OK merci pour votre aide je vais tester ...
0