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 :

Effectuer une action à chaque fois que j'écris une lettre dans un JTextField


Sujet :

Composants Java

  1. #1
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut Effectuer une action à chaque fois que j'écris une lettre dans un JTextField
    Bonjour a tous !!

    J'ai un soucis car j'essaye, a chaqsue fois que j'écris une lettre dans un JTextField, d'effectuer une action. J'ai essayé de faire un monJTextField.addActionListener(this) et de traiter l'action directement mais il ne repère aucun évènement... Auriez vous une idée de comment gérer cela...
    Merci d'avance !!!!

    [ Sujet déplacé depuis le forum java par Viena ]
    Les Règles du Forum

  2. #2
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    peut être avec un addDocumentListener ...
    Voire la javadoc :
    The java.awt.TextField could be monitored for changes by adding a TextListener for TextEvent's.In the JTextComponent based components, changes are broadcasted from the model via a DocumentEvent to DocumentListeners. The DocumentEvent gives the location of the change and the kind of change if desired.
    mavina

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu devrais pouvoir t'en sortir avec un caretListener, tu stocke la position du caret à chaque fois qu'il bouge, s'il a avancé, ca veut dire qu'un nouveau caractère a été entré.

  4. #4
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    Salut en cherchant dans la javadoc j'ai vu qu'il fallait faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monJTextField.getDocument().addDocumentListener(this)
    mais il ne veux pas compiler... il me met l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:\Documents and Settings\Gillou\Bureau\Requeteur\src\Vues\paneldicochamps.java:31: addDocumentListener(javax.swing.event.DocumentListener) in javax.swing.text.Document cannot be applied to (Vues.paneldicochamps)
            Champs.getDocument().addDocumentListener(this);
    J'ai sans doute zappé quelque chose dans la javadoc mais comme je ne la comprends pas très bien si tu avais une piste pour me dire d'où viens l'erreur ca m'arrangerais

    PS: J'ai essayé de faire un implements TextListener à la place de mon ActionListener mais il ne veux pas non plus et il me met une erreur sur cette ligne la

  5. #5
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par wichtounet
    Tu devrais pouvoir t'en sortir avec un caretListener, tu stocke la position du caret à chaque fois qu'il bouge, s'il a avancé, ca veut dire qu'un nouveau caractère a été entré.
    J'ai essayé de faire MonJTextField.addCaretListener(this) mais il me met encore une erreur. J'ai l'impression que cela viens de la manière dont je recupère l'evênement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public void actionPerformed(ActionEvent e)
        {
            // On récupère la source de l'évènement
            Object source = e.getSource();
            if(source == MonJTextField)
            {
                System.out.println("ca marche !! ");
            }
     
        }

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    C'est assez logique, car le caretListener fait appel à la méthode caretUpdate et non pas actionPerformed (pour un actionPerformed)

    Il te faut faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    caretPosition = 0;
     
     
    caretUpdate(CaretEvent e){<div style="margin-left:40px">int newCaretPosition = e.getDot();
     
     
    if(newCaretPosition > caretPosition){<div style="margin-left:40px">System.out.println("Vous avez tapé un caractère de plus");
    </div>}
     
    caretPosition = newCaretPosition;
    </div>}

  7. #7
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    alors il me reste des erreurs. Il me met des erreurs sur les lignes suivantes :

    ca ca marche pas... Il ne faut sans doute pas faire un caretListener mais je ne sais pas quoi mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public class paneldicochamps extends JPanel implements caretListener
    {
    J'ai une autre erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Champs.addCaretListener(this);
    et une dernière ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     public void caretUpdate(CaretEvent e)
        {
    Je suppose que les trois erreurs sont liée (ca serai pas mal )

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Ta première ligne ou tu as une erreur, il faut implémenter CaretListener et pas caretListener

  9. #9
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    décidement je vais vraiment t'embêter mais j'avais essayé de mettre CaretListener mais ca ne marchait pas. Il me dit "cannot find symbol" comme s'il ne trouvais pas la librairie alors que d'apres ce que je viens de voir dans la javadoc il faudrait que je mettes javax.swing.event... hors je met deja javax.swing.*;
    une dernière idée peut être

    PS: arf je viens de voir que je n'ai pas la librairie javax.swing.event d'instalklé par defaut avec NetBeans... Tu sais ou je pourrais choper ca?

  10. #10
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    WATCHAAAAAA je retire ce que j'ai dis ca y est j'ai réussi !!!
    j'avais mis une majuscule au event.......
    donc ca fonctionne super bien !!!!
    un grand merci a Witchounet et mavina !!

  11. #11
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Oubli pas de mettre le tag qui se trouve tout en bas de la page

    Bonne continuation, ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2012, 11h14
  2. Auto focus sur une page a chaque fois que son contenu se change
    Par solicel dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 08/01/2010, 09h21
  3. Effectuer une action à chaque clique
    Par supertoms dans le forum VBA Access
    Réponses: 6
    Dernier message: 15/05/2008, 08h36
  4. Réponses: 5
    Dernier message: 14/11/2007, 08h03

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