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 :

JTextField auto complete avec swingX


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 47
    Points
    47
    Par défaut JTextField auto complete avec swingX
    Bonjour à tous,

    J'ai actuellement une application dans laquelle je souhaiterai mettre un auto complete sur un JTextField.

    J'ai réussit à le faire à l'aide de la bibliothèque SwingX mais le rendu n'est pas exactement ce que je souhaiterai.
    En effet actuellement, lorsque je tappe mon texte le JTextField s'autocomplete avec la première correspondance alors que j'aimerai qu'en plus de cela, il me propose une liste en dessous des choix possible.


    Pour mieux vous expliquer, je vous montre mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public class EssaiPanel extends Container{
     
        List<Object> refs =null;
        List<String> refsPackage = new ArrayList<String>();
     
        public EssaiPanel(Dimension dim) {
     
            super(dim);
            initPanel();
     
        }
     
         public void initPanel() {
     
            JTextField txtReference = new JTextField(15);
     
            refs=operation();
            // on récupère tout les stocke
            for (int i = 0 ; i<refs.size() ; i++) {
                refsPackage.add(refs.get(i).toString());
            }
            AutoCompleteDecorator.decorate(txtReference, refsPackage, false);
     
            panel.add(txtReference);
     
       }
     
        private static java.util.List<java.lang.Object> operation() {
            PackageExistant.PackageExistantService service = new PackageExistant.PackageExistantService();
            PackageExistant.PackageExistant port = service.getPackageExistantPort();
            return port.operation();
        }
    }
    operation, me retourne en fait un array des noms de package que j'ai dans ma base de données via un webservice. Actuellement, avec ce que j'ai comme donnée le code peut se simplifier ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    public class EssaiPanel extends Container{
     
        List<Object> refs =null;
        List<String> refsPackage = new ArrayList<String>();
     
        public EssaiPanel(Dimension dim) {
     
            super(dim);
            initPanel();
     
        }
     
         public void initPanel() {
     
            JTextField txtReference = new JTextField(15);
     
            refsPackage.add("NotePad++");
            refsPackage.add("Fond d'ecran");
            refsPackage.add("WampServer");
            refsPackage.add("Winrar");
            refsPackage.add("Brian Adams");
            refsPackage.add("Linkin Park");
            refsPackage.add("The Virgins");
            refsPackage.add("Aucun");
            refsPackage.add("Beck");
            refsPackage.add("Dexter");
            refsPackage.add("Gangs of NY");
            refsPackage.add("row");
     
            AutoCompleteDecorator.decorate(txtReference, refsPackage, false);
     
            panel.add(txtReference);
     
       }
    }
    Je voudrais donc que lorsque je tappe "W" dans mon champs texte, le champs texte se complete automatiquement et me propose en solution Winrar, WampServer et row, un peu a la manière d'un ComboBox.

    Pour ceux qui me diront autant faire un comboBox, je préviens que ce champs texte pourra permettre une nouvelle insertion d'un nouveau package dans la base de donnée, d'où l'importance à ce que ce soit un champs text et non un combobox!!

    Merci de votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    Bonjour,

    As-tu trouvé une réponse a ton problème? Je sais que le post date un peu mais bon je tente!!

  3. #3
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    Salut !
    d'où l'importance à ce que ce soit un champs text et non un combobox!!
    le combobox te retourne un object; tu n'as plus qu'à faire la conversion. Ou si je n'ai pas compris le probléme ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 076
    Points : 7 983
    Points
    7 983
    Par défaut
    Swingx a un composant (textfield) tout fait qui gère l'autocomplétion, tu devrais y jeter un oeil.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [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, 16h48
  2. [Prototype] Auto-completion
    Par Bigoodheart dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 23/04/2010, 21h54
  3. auto completion avec Jquery
    Par surpriz dans le forum jQuery
    Réponses: 6
    Dernier message: 15/10/2008, 18h05
  4. [SWINGX] auto-complet avec filtre
    Par grabriel dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 16/07/2007, 15h15
  5. Auto Completion avec un JComboBox
    Par jeffciara dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 19/10/2006, 08h37

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