IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

auto completion


Sujet :

Composants Java

  1. #1
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut auto completion
    Bonjour, je cherche un moyen (ou une api si ca existe) pour faire de l'auto completion. Je m'explique, en faite dans mon IHM j'ai un jtextfield, mon ihm et connecter a un base de donnée. Je voudrais que lorsque qu'un utilisateur tape la lettre j par exemple, tous les mots dans la base commencant par la lettre j s'affiche dans un petit panneau sous le jtextfield, a la maniere de firefox quand on tape une URL.
    Une api existe elle pour faire ca? ou sinon comment developper une tel api? Je ne vois pas par ou commencer.

    Merci de vos conseil.

  2. #2
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Points : 58
    Points
    58
    Par défaut
    Il suffit de faire une requête sur le champ correspondant.

    SELECT nomDuChamp
    FROM taTable
    WHERE nomDuChamp LIKE "j%"

    et de mettre le résultat dans une liste déroulante.

    A moins que tu cherches quelque chose comme ça :

    xnap

    ok a+

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut
    Les requetes si ce sont des grosse base risque d'etre longue.
    Je te conseil au demarrage de ton programme une recuperation des données de ta base dans un arbre binaire.

  4. #4
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut
    xnap a l'air interressant au vue des screenshoots. J'ai voulus tester pour voir mais ca claque une exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    	at org.xnap.commons.gui.completion.Completion.<clinit>(Completion.java:60)
    	at org.xnap.commons.gui.Builder.addCompletion(Builder.java:71)
    	at JSMTPClient.InitComponents(JSMTPClient.java:99)
    	at JSMTPClient.<init>(JSMTPClient.java:39)
    	at JSMTPClient.main(JSMTPClient.java:537)
    pourtant le code est simple et recopier du site:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    _lpRecepteur = new JLabel("Récepteur: ");
    		_txRecepteur = new JTextField(50);	
    		Completion completion = Builder.addCompletion(_txRecepteur, new FileCompletionModel());

  5. #5
    Membre habitué Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Points : 178
    Points
    178
    Par défaut
    Il me semble qu'il te manque tout simplement un package : http://jakarta.apache.org/commons/logging/ de log utilisé par xnap.
    +

  6. #6
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut
    ok ben j'ai essaier avec common-loggin 1.0.4 (les 2 jars qui file avec) et j'ai une autre exception sur le source qui file en exemple sur le site de xnap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    15 mars 2006 22:27:31 org.xnap.commons.settings.PropertyResource load
    INFO: Reading settings from completion-settings
    Exception in thread "main" java.lang.NoClassDefFoundError: org/xnap/commons/i18n/I18nFactory
    	at org.xnap.commons.gui.util.GUIHelper.<clinit>(GUIHelper.java:73)
    	at CompletionExample.<init>(CompletionExample.java:76)
    	at CompletionExample.main(CompletionExample.java:216)

  7. #7
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    Citation Envoyé par anykeyh
    Les requetes si ce sont des grosse base risque d'etre longue.
    Je te conseil au demarrage de ton programme une recuperation des données de ta base dans un arbre binaire.
    MDR ... et ça, ça prendrait pas beaucoup de temps et de mémoire avec 1 grosse BD ? et si la BD change dans le temps ?

    Nan, je pense que sa méthode est la bonne .... tu rajoutes juste 1 listener (dont je ne me rappelle plus le nom mais ça ne sera pas bien difficile à retrouver dans la FAQ) qui écoute la frappe d'une touche(mot clef à chercher : key et listener). Tu lui affecte ensuite le comportement voulu : passage de la requête et affichage du résultat ...

  8. #8
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut
    ouais mais moi ca me plait bien le composant xnap :-). Je pensais tous recuperer dans un resultset et balancer ca dans la completion. mais je pige pas cette exception

  9. #9
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    simple : tu lui demande d'utiliser une classe.
    Il ne trouve pas la classe dont tu lui parle (le .class)

    Pour cela, il faut importer le package JAR dans ton projet et changer la propriété Class-Path : de ton JAR (MANIFEST.MF)(si tu l'exécute à partir d'un JAR)

  10. #10
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut
    J'utilise eclipse. Et j'ai bien ajouter les .jar dont j'ai besoin.

    J'ai tester le source ici http://xnap-commons.sourceforge.net/...8nExample.java

    et ca me que les deux import:
    import org.xnap.commons.i18n.I18n;
    import org.xnap.commons.i18n.I18nFactory;
    sont introuvables.

    J'utilise xnap-commons 0.9.4.

  11. #11
    Membre habitué Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Points : 178
    Points
    178
    Par défaut
    Dans la sous-rubrique de Xnap 'Internationalization (I18n)' ils te parlent d'un package :
    http://xnap-commons.sourceforge.net/gettext-commons/ qui devrait contenir les classes qui te manquent...
    Voila en ajoutant ce jar tu devrais y arriver.
    Bon courage

  12. #12
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut
    Le jar en question qu'il propose de telecharger c'est xnap-commons, et je l'ai déjà.

    De plus la classe I18n n'est plus définis dans xnap-commons0.9.4 mais dans
    import com.sun.imageio.plugins.common.I18N; (si c'est la bonne).
    quand a la classe I18nFactory introuvable, c'est ca mon probleme.

    Quelqu'un arrive à executer le code que j'ai mis en url dans le post precedent?

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut I18nFactory introuvable
    .....
    De plus la classe I18n n'est plus définis dans xnap-commons0.9.4 mais dans
    import com.sun.imageio.plugins.common.I18N; (si c'est la bonne).
    quand a la classe I18nFactory introuvable, c'est ca mon probleme.
    .....
    J'ai eu le même problème (je cherchai à utiliser le DirectoryChooser de xnap): résolu en utilisant la version 9 ( la plus ancienne). La classe I18nFactory n'y est pas mais elle n'est pas requise. Peut-être une solution pour vous ....?

  14. #14
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 70
    Points
    70

  15. #15
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 161
    Points : 48
    Points
    48
    Par défaut
    Salut, j'ai le même problème.
    J'ai essayé cette classe http://xnap-commons.sourceforge.net/...onExample.java
    Mais il m'indique cette exception dans ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Completion comp = new Completion(jtf, cm);
    implement all abstract methods.

    Quelle la solution pour avois l'auto-completition dans mon jTextField???
    Merci d'avance.

Discussions similaires

  1. message d' erreur pour l' auto-completion
    Par battle dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 05/02/2007, 10h32
  2. Auto-Completion dans Eclipse
    Par trino dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/01/2007, 13h00
  3. [VC++ 8] Coloration syntaxique et auto completion
    Par 5:35pm dans le forum VC++ .NET
    Réponses: 9
    Dernier message: 24/10/2006, 11h44
  4. Auto Completion avec un JComboBox
    Par jeffciara dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 19/10/2006, 08h37
  5. auto completion sous crimson
    Par Australia dans le forum ASP
    Réponses: 4
    Dernier message: 13/07/2006, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo