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

AWT/Swing Java Discussion :

Auto Completion avec un JComboBox


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut Auto Completion avec un JComboBox
    Bonjour,

    J'ai ajouté un renderer de type JLabel sur mon JComboBox et je n'arrive plus à accéder aux éléments en tapant la première lettre. J'aimerais en outre ajouter une complétion automatique... Quelqu'un a une idée ??
    Merci

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par jeffciara
    Bonjour,

    J'ai ajouté un renderer de type JLabel sur mon JComboBox et je n'arrive plus à accéder aux éléments en tapant la première lettre. J'aimerais en outre ajouter une complétion automatique... Quelqu'un a une idée ??
    Merci
    Il est tout à fait logique que tu ne puisses plus accéder à tes éléments avec des lettres... Ce serait pas logique le contraire, la liste référence des JLabel et pas le String qu'il contient...

    Pour ce qui est de la complétion automatique, va voir swingx

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    Ok je me doutais bien que c'était la cause...
    Pour les swingx c'est bien ce site : https://swingx.dev.java.net/ ?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ouaip, mais les binaires sont distribués de façon officielle sur swinglabs.org

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    Par contre dans les binaires je ne vois pas de combobox avec auto completion... Comment s'appelerait la classe ?

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il faut procéder de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     JComboBox comboBox = [...];
     Configurator.enableAutoCompletion(comboBox);

  7. #7
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par jeffciara
    Par contre dans les binaires je ne vois pas de combobox avec auto completion... Comment s'appelerait la classe ?
    Par contre, si tu veut rester sur ton histoire de JLabel, je ne pense pas que Swingx puisse t'aider...

    Si tu veut vraiment faire quelque chose qui te mettre à la bonne ligne tu seras obligé de gérer ceci toi - même

  8. #8
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    En fait la méthode est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AutoCompleteDecorator.decorate(unJComboBox);
    Par contre cette méthode marche pour un JComboBox "classique". Comment faut il faire pour un JComboBox qui possede un renderer de type JLabel (ou peut importe le type d'ailleurs) ?

  9. #9
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait ça dépend de la version de swingx je présume, dans la 0.8 ce que j'ai dit est correct, ensuite das les versions suivantes celà changé et ça se pratique comme tu l'as dit

  10. #10
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par jeffciara
    En fait la méthode est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AutoCompleteDecorator.decorate(unJComboBox);
    Par contre cette méthode marche pour un JComboBox "classique". Comment faut il faire pour un JComboBox qui possede un renderer de type JLabel (ou peut importe le type d'ailleurs) ?
    Comme je te l'ai dit, l'auto-completion swingx ne gère cela qu'avec une liste de String, si tu veut le faire avec une liste de JLabel, il va falloir le developper toi-même

  11. #11
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    oups j'avais pas vu ton message witchou...

    En fait l'histoire du renderer jlabel c'était pour me permettre d'avoir un (ou plusieurs) champ caché qui représentait la clé de l'item sélectionné. Cela marche très bien. Mais a ses limites apparement...
    Ce qui me parait bizard, c'est qu'il n'existe pas un composant de type ComboBox en Java qui permet de gérer le clé/Valeur comme un simple combo HTML...

  12. #12
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par jeffciara
    oups j'avais pas vu ton message witchou...

    En fait l'histoire du renderer jlabel c'était pour me permettre d'avoir un (ou plusieurs) champ caché qui représentait la clé de l'item sélectionné. Cela marche très bien. Mais a ses limites apparement...
    Ce qui me parait bizard, c'est qu'il n'existe pas un composant de type ComboBox en Java qui permet de gérer le clé/Valeur comme un simple combo HTML...
    Je comprends pas trop ce que tu entends gérer un couple clé valeur ? Tu veut donc dire deux colonnes dans un JComboBOx ?

  13. #13
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    Je voudrais avoir un champ caché (clé) qui represente la clé d'une table et la valeur à afficher qui serait un champ de la table.

    Exemple :
    Champ caché/ Liste du combobox
    (1) --> Auto
    (2) --> Moto
    (3) --> Bateau

    J'arrive à faire cela avec un renderer mais je n'ai plus droit à mon auto-completion

  14. #14
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Pour illustrer le problème jeffciara, imaginez que l'on a une base avec un table véhicule(id, nom, marque, type) et une table type véhicule (id, nom). Et, sinon ce serait pas drole, que les id de la table type ne commencent pas a 1, ni ne se suivent .
    Et biensur l'on veut lier notre combobox avec cette table type.

    Un tableau ou un vecteur ne peuvent pas répondre a ce problème, va donc falloir redefinir un modèle. Parcontre dans quoi stocker les données ? hashmap, tableau d'objet ?

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    J'ai testé deux solutions à cette question:
    - un nouveau renderer comme tu l'as fait (et qui te pose problème)
    - redéfinir la méthode toString de l'objet que tu ranges dans ta combo, en
    renvoyant la valeur que tu veux afficher dans ton combo.

  16. #16
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Je ne sais pas si c'est a moi que tu repond, mais tout l'enjeux est d'arriver a travailler avec les id et non afficher les labels

    Enfin pour ma cas perso, y a pu de problème, j'avais un temps soi peu oublié qu'en java on fonctionne avec des références

  17. #17
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Je répondais à la question initiale.
    J'ai bien compris la question posée et je donnais une solution au problème.

  18. #18
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    Merci pour vos réponses mais le probleme est de trouver un moyen d'obtenir l'autocomplétion. C'est à dire selectionner un item à partir d'une saisie clavier.

Discussions similaires

  1. [ZF 1.11] Auto-completion avec Zend et jQuery
    Par CinePhil dans le forum Zend_Form
    Réponses: 7
    Dernier message: 25/06/2011, 02h58
  2. [ZF 1.11] Auto-completion avec Zend_Dojo_Form_Element_FilteringSelect
    Par CinePhil dans le forum Zend_Form
    Réponses: 12
    Dernier message: 21/01/2011, 17h48
  3. [Prototype] Auto-completion
    Par Bigoodheart dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 23/04/2010, 22h54
  4. auto completion avec Jquery
    Par surpriz dans le forum jQuery
    Réponses: 6
    Dernier message: 15/10/2008, 19h05
  5. [SWINGX] auto-complet avec filtre
    Par grabriel dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 16/07/2007, 16h15

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