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 :

Rechercher personne de la base de données


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut Rechercher personne de la base de données
    Salut tout le monde …

    Je suis à la réalisation d’une application de gestion sous netBeans pour cela j’ai besoin de rechercher des personnes qui existent dans ma base de donnée ,j’ai pensé à faire une recherche (comme sur google ) sur le JTextField de recherche quand je tape le dèbut du nom une liste s’affiche au dessous du JTextField et je veux en cliquant sur la bonne personne ses information s’affiche…

    Je me demande comment le faire…(je ne cherche pas la requete SELECT… mais plutôt la démarche java pour afficher la liste et ce qui s’en suit)

    Merci d’avance pour votre aide.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par selmagsi Voir le message
    Salut tout le monde …

    Je suis à la réalisation d’une application de gestion sous netBeans pour cela j’ai besoin de rechercher des personnes qui existent dans ma base de donnée ,j’ai pensé à faire une recherche (comme sur google ) sur le JTextField de recherche quand je tape le dèbut du nom une liste s’affiche au dessous du JTextField et je veux en cliquant sur la bonne personne ses information s’affiche…

    Je me demande comment le faire…(je ne cherche pas la requete SELECT… mais plutôt la démarche java pour afficher la liste et ce qui s’en suit)

    Merci d’avance pour votre aide.
    Déjà pour afficher les informations tu peux utiliser les JTables, maintenant pour la recherche tu peux utiliser les évênements keytyped du JTextFields

  3. #3
    Membre actif Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Points : 293
    Points
    293
    Par défaut
    Bonjour,
    dans ton cas, à mon sens liste+JTextField=jComboBox!
    en tous cas c'est ce j'ai utilisé pour avoir la liste des personnes enregistrées dans ma bdd:
    1-je remplis d'abord une arrayList à partir de ma base;
    2-j'alimente avec mon jComboBox avec la liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(liste_personne.toArray()));
    3-enfin si tu veux faire de la saisie semi automatique dans ce même jComboBox, tu peux te servir de la classe suivante
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.text.*;
    public class ComboSelection  extends PlainDocument {
        JComboBox comboBox;
        ComboBoxModel model;
        JTextComponent editor;
        // flag to indicate if setSelectedItem has been called
        // subsequent calls to remove/insertString should be ignored
        boolean selecting=false;
     
        public ComboSelection (final JComboBox comboBox) {
            this.comboBox = comboBox;
            model = comboBox.getModel();
            editor = (JTextComponent) comboBox.getEditor().getEditorComponent();
            editor.setDocument(this);
            comboBox.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    if (!selecting) highlightCompletedText(0);
                }
            });
            editor.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    if (comboBox.isDisplayable()) comboBox.setPopupVisible(true);
                }
     
            });
            // Handle initially selected object
            Object selected = comboBox.getSelectedItem();
            if (selected!=null) setText(selected.toString());
            highlightCompletedText(0);
        }
     
        public void remove(int offs, int len) throws BadLocationException {
            // return immediately when selecting an item
            if (selecting) return;
            super.remove(offs, len);
        }
     
        public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
            // return immediately when selecting an item
            if (selecting) return;
            // insert the string into the document
            super.insertString(offs, str, a);
            // lookup and select a matching item
            Object item = lookupItem(getText(0, getLength()));
            if (item != null) {
                setSelectedItem(item);
            } else {
                // keep old item selected if there is no match
                item = comboBox.getSelectedItem();
                // imitate no insert (later on offs will be incremented by str.length(): selection won't move forward)
                offs = offs-str.length();
                // provide feedback to the user that his input has been received but can not be accepted
                comboBox.getToolkit().beep(); // when available use: UIManager.getLookAndFeel().provideErrorFeedback(comboBox);
            }
            setText(item.toString());
            // select the completed part
            highlightCompletedText(offs+str.length());
        }
     
        private void setText(String text) {
            try {
                // remove all text and insert the completed string
                super.remove(0, getLength());
                super.insertString(0, text, null);
            } catch (BadLocationException e) {
                throw new RuntimeException(e.toString());
            }
        }
     
        private void highlightCompletedText(int start) {
            editor.setCaretPosition(getLength());
            editor.moveCaretPosition(start);
        }
     
        private void setSelectedItem(Object item) {
            selecting = true;
            model.setSelectedItem(item);
            selecting = false;
        }
     
        private Object lookupItem(String pattern) {
            Object selectedItem = model.getSelectedItem();
            // only search for a different item if the currently selected does not match
            if (selectedItem != null && startsWithIgnoreCase(selectedItem.toString(), pattern)) {
                return selectedItem;
            } else {
                // iterate over all items
                for (int i=0, n=model.getSize(); i < n; i++) {
                    Object currentItem = model.getElementAt(i);
                    // current item starts with the pattern?
                    if (startsWithIgnoreCase(currentItem.toString(), pattern)) {
                        return currentItem;
                    }
                }
            }
            // no item starts with the pattern => return null
            return null;
        }
     
        // checks if str1 starts with str2 - ignores case
        private boolean startsWithIgnoreCase(String str1, String str2) {
            return str1.toUpperCase().startsWith(str2.toUpperCase());
        }
     
    }
    tu l'utilise ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new ComboSelection (jComboBox1);
    et tu ajoute à la fin ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     jComboBox1.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
    et bon courage!

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Pour ma part, sa demande se rapproche davantage d'une fonction d'auto-complétion. Certains ont déjà eu ce genre de problématique en Swing ici : http://download.java.net/javadesktop...e-summary.html

  5. #5
    Membre actif Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Points : 293
    Points
    293
    Par défaut
    oui c'est ça, par saisi semi automatique je voulais dire auto-complétion! j'ai pas trouvé les bons termes!

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Pour ma part, sa demande se rapproche davantage d'une fonction d'auto-complétion. Certains ont déjà eu ce genre de problématique en Swing ici : http://download.java.net/javadesktop...e-summary.html

    On peut voir des fils sur ce sujet sous Stackoverflow : http://www.stackoverflow.com/questio...-dropdown-list
    Je crois que ta méthode est beaucoup plus jolie et efficace que la mienne merci pour tes liens

  7. #7
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    merci à tous pour votre attention...
    merci infiniment Kalina de m'avoir poussé le code,je l'ai testé mais ça n'affiche rien malgré que ma liste est bien remplie

    encor merci
    cordialement

  8. #8
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    je veux récupérer le texte que je saisi sur JComboBox pas avec getSelectedItem mais le texte saisi et le item n'existait pas dans JComboBox
    merci d'avance pour votre aide

    je veux faire une auto complétion sur JCombobox ,c'est à dire des que je saisis par exemple "se" je commence à avoir les nom commençants par "se" voila ma requete:
    query =("SELECT nom FROM patient WHERE nom LIKE '"+X+"%'");

    à la palace de X je veux récupérer ce que j'ai tapé sur JCombobox

    merci

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si les items mis le JComboBox sont dans une classe donnée (mettons MyItem, pour l'exemple suivant), autre que String, tu peux faiire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Object selectedItem = combo.getSelectedItem();
    if ( selectedItem instanceof MyItem ) {
       // l'item sélectionné existe dans le modèle
    } else {
       // l'item sélectionnée n'existe pas dans le modèle et est forcément de type String
       String text = (String)selectedItem;
       // et là tu peux faire ce que tu veux avec
    }
    Sinon, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((JTextField)combo.getEditor().getEditorComponent()).getText();

  10. #10
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    merci Joel
    c'est ce que je cherche ((JTextField)combo.getEditor().getEditorComponent()).getText(); en principe
    mais je l'ai essayé et ça n'a pas marché ni avec le Action performed ni keyRealised ,c'est quoi le probléme?
    merci

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ah, ok, ce n'est pas la même chose : tu cherches à détecter les modifications de la valeur. Dans ce cas, il faut poser un DocumentListener sur l'éditeur.

    En code un peu bourrain, mais simple, ça donnerait ça :

    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
     ((JTextField) editor).getDocument().addDocumentListener(new DocumentListener() {
                @Override
                public void insertUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                @Override
                public void removeUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                @Override
                public void changedUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                private void updateInputText() {
                      // et là tu peux lire le texte saisi avec la méthode donnée précedemment
                }
     
     
            });
    Je dis bourrain, parce qu'on pourrait procéder de façon plus adaptée à chaque méthode, respectivement, celle qui ajoute des caractères, celle qui enlève des caractères et celle qui modifie des caractères : justement pour une auto-completion, ça peut être intéressant de savoir de réagir plus finement.
    Si par exemple on ajoute, on sait qu'on a déjà chargé au moins tous les éléments, et on est pas obligé de refaire la requête sur la base, mais seulement filtrer sur le résultat précédent, par exemple. Ou en cas d'ajout, lancer un timer qui lance la requête au bout d'un certain temps, et qui annule la requête lancée précédemment : ainsi, si l'utilisateur tape suffisemment vite, on lance pas plusieurs requêtes, mais uniquement celle qui correspond au mot quand il a fini de taper.

  12. #12
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    j'ai pas compris le code,ou est le JComboBox dans tout ça?
    et est ce que je dois travailler tout ça hors une action sur le JComboBox??

    merci

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 48
    Points : 124
    Points
    124
    Par défaut
    Avez vous ajouté un Listener à votre combobox (du genre ce qui suit)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
             String [] donnees = new String [5];//par exemple
            JComboBox jcb = new JComboBox(donnees );
            jcb.setEditable(true);
            jcb.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
               System.out.println("Vous avez choisi " + (
                            (JComboBox)e.getSource()).getSelectedItem()  + "!");
               }
              });
    Cela suppose que avez chargé des données avant. Sinon il faut trouver un moyen d'en ajouter.

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    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
    JComboBox combo = new JComboBox(...   
     
    ...
     
    final JTextField editor = (JTextField)combo.getEditor();
     
    editor.getDocument().addDocumentListener(new DocumentListener() {
                @Override
                public void insertUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                @Override
                public void removeUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                @Override
                public void changedUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                private void updateInputText() {
                      // et là tu peux lire le texte saisi avec la méthode donnée précedemment
                }
     
     
            });

  15. #15
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    habibous oui j'ai ajouter une action
    joel je n'arrive pas à absorber l'idée,voila mon code initial ,ou doit je mettre votre 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
     
        private void jActionPerformed(java.awt.event.ActionEvent evt) {                                  
            // TODO add your handling code here:
     
                    ArrayList a;
            a= new ArrayList<String>();
     
              try {
                String query =null;
                String q =null;
                String UrlBase = "jdbc:postgresql://localhost/gestion du cms";
                String driver="org.postgresql.Driver";
                String user = "postgres";
                String MDP="selma";
     
                try {
                    Class.forName("org.postgresql.Driver");
                } catch (ClassNotFoundException ex) {
     
                }
                Connection conn = DriverManager.getConnection(UrlBase, user, MDP);
     
    Statement state = conn.createStatement();
     
    q =("SELECT nom FROM patient WHERE nom LIKE '"+(((JTextField)j.getEditor().getEditorComponent()).getText())+"%'");
     
     
    ResultSet result = state.executeQuery(q );
     
    ResultSetMetaData resultMeta = result.getMetaData();
     
    while(result.next()){
    for(int i = 1; i <= resultMeta.getColumnCount(); i++)
     
        a.add(result.getObject(i).toString());
     
    }
     
    j.setModel(new javax.swing.DefaultComboBoxModel(a.toArray()));
    //classe pour l'auto complétion 
    new ComboSelction (j);
      j.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
     
     
    result.close();
    state.close();
    } catch (Exception e) {
    e.printStackTrace();
    }   
     
     
        }

  16. #16
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu as bien une ligne de code où tu créés ta combo ? Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JComBox combo = new JComboBox();
    Tu l'as peut-être pas appelée combo, mais que ça soit j, alfred ou tarteauxfraises, c'est pareil : tu colles le code que je t'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    final JTextField editor = (JTextField)combo.getEditor();
     
    editor.getDocument().addDocumentListener(new DocumentListener() {
    ...
    }
    juste après... en mettant à la place de combo, le nom de la variable que tu as utilisée.

    Et dans la méthode updateInputText(), tu mets le code que toi tu as mis dans private void jActionPerformed(java.awt.event.ActionEvent evt) dans le code que tu viens de poster.

  17. #17
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    je suis sous le visual editor de netBeans je n'ai pas le droit de toucher à l'initialisation des composants,alors j'ai suivi votre méthode mais sur le Action performed voila le 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     private void jActionPerformed(java.awt.event.ActionEvent evt) {   
     final JTextField editor = (JTextField)j.getEditor();
     
    editor.getDocument().addDocumentListener(new DocumentListener() {
     
     
                public void insertUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
     
                public void removeUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                public void changedUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                private void updateInputText() {
                      // et là tu peux lire le texte saisi avec la méthode donnée précedemment
     
                           ArrayList a;
            a= new ArrayList<String>();
     
              try {
                String query =null;
                String q =null;
                String UrlBase = "jdbc:postgresql://localhost/gestion du cms";
                String driver="org.postgresql.Driver";
                String user = "postgres";
                String MDP="selma";
     
                try {
                    Class.forName("org.postgresql.Driver");
                } catch (ClassNotFoundException ex) {
     
                }
                Connection conn = DriverManager.getConnection(UrlBase, user, MDP);
     
    Statement state = conn.createStatement();
     
    q =("SELECT nom FROM patient WHERE nom LIKE '"+(((JTextField)j.getEditor().getEditorComponent()).getText())+"%'");
     
     
    ResultSet result = state.executeQuery(q );
     
    ResultSetMetaData resultMeta = result.getMetaData();
     
    while(result.next()){
    for(int i = 1; i <= resultMeta.getColumnCount(); i++)
     
        a.add(result.getObject(i).toString());
     
    }
     
    j.setModel(new javax.swing.DefaultComboBoxModel(a.toArray()));
    //classe pour l'auto complétion 
    new ComboSelction (j);
      j.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
     
     
    result.close();
    state.close();
    } catch (Exception e) {
    e.printStackTrace();
    }  
     
     
     
                }
     
     
            });
    mais toujours le meme probléme rien n'est affiché...
    j'ai essayé de mettre ce code en dehors d'une Action et là j'ai un probléme que le JComboBox (j) n'est pas reconnu meme si il est public!

  18. #18
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux modifier le code d'initialisation avec le menu "Customize code...", dans le menu contextuel du composant, dans window builder.

  19. #19
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    merci bcp pour l'idée de customize code,d'ailleurs merci pour tout...

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     final JTextField editor = (JTextField)j.getEditor();
     
    editor.getDocument().addDocumentListener(new DocumentListener() {
     
     
                public void insertUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
     
                public void removeUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                public void changedUpdate(DocumentEvent documentEvent) {
                     updateInputText();
                }
     
                private void updateInputText() {
                      // et là tu peux lire le texte saisi avec la méthode donnée précedemment
     
                           ArrayList a;
            a= new ArrayList<String>();
     
              try {
                String query =null;
                String q =null;
                String UrlBase = "jdbc:postgresql://localhost/gestion du cms";
                String driver="org.postgresql.Driver";
                String user = "postgres";
                String MDP="selma";
     
                try {
                    Class.forName("org.postgresql.Driver");
                } catch (ClassNotFoundException ex) {
     
                }
                Connection conn = DriverManager.getConnection(UrlBase, user, MDP);
     
    Statement state = conn.createStatement();
     
    q =("SELECT nom FROM patient WHERE nom LIKE '"+(((JTextField)j.getEditor().getEditorComponent()).getText())+"%'");
     
     
    ResultSet result = state.executeQuery(q );
     
    ResultSetMetaData resultMeta = result.getMetaData();
     
    while(result.next()){
    for(int i = 1; i <= resultMeta.getColumnCount(); i++)
     
        a.add(result.getObject(i).toString());
     
    }
     
    j.setModel(new javax.swing.DefaultComboBoxModel(a.toArray()));
    //classe pour l'auto complétion 
    new ComboSelction (j);
      j.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
     
     
    result.close();
    state.close();
    } catch (Exception e) {
    e.printStackTrace();
    }  
     
     
     
                }
     
     
            });
    mais j'ai deux erreur au niveau de la ligne:
    editor.getDocument().addDocumentListener(new DocumentListener() {
    qui dit:
    package iditor does not existe
    <identifier> expected
    ';' expected

    et la ligne:
    public void insertUpdate(DocumentEvent documentEvent) {
    qui dit:
    illegal start of experession

    je n'arrive pas à les régler!!!

  20. #20
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Difficile de dire sans le code complet, mais à mon avis il manque une accolade qui fait que le compilo comprend plus rien : indentes mieux ton code et tu devrais mieux voir où elle manque. Peut-être simplement l'accolade de fin de la méthode d'initialisation.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. recherche d'un logiciel base de données
    Par carottercl dans le forum Débuter
    Réponses: 3
    Dernier message: 18/02/2008, 23h20
  2. Réponses: 0
    Dernier message: 16/11/2007, 11h00
  3. Recherche croisé dans une base de donnée
    Par elephant13 dans le forum C#
    Réponses: 1
    Dernier message: 24/03/2007, 15h26
  4. Recherche d'exemples de base de données!
    Par jessy212 dans le forum Débuter
    Réponses: 3
    Dernier message: 15/09/2006, 16h51

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