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

avec Java Discussion :

ActionListener et controle de saisie


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut ActionListener et controle de saisie
    Bonsoir a tous, j'ai un petit problème, j'ai deux boutons :
    le premier vérifie l'intégrité des données, puis doit activer le deuxieme(set enabled(true)) pour que ce dernier décrypte ces données et les ajoute dans la base de donnée.
    mais je ne sais pas trop comment faire car , mon code ne marche pas comme prevu, il me laisse le deuxième bouton toujours désactivé !
    voila 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
    34
    35
    36
     
    boolean verif = false;
    // toutes les ActionListener vont me retourner vrai si il n'ya pas d'anomalie //dans la saisie, et false sinon.
     
               ActionListener atesterdaten = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                   verif = Ecoute.atesterdaten(pan, jdaten);
                }
            };
     
                ActionListener atesterCin = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    verif = Ecoute.atesterCin(pan, jcin);
                }
            };
                ActionListener atestertel = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    verif = Ecoute.atestertel(jtel);
                }
            };
                ActionListener atesterpoids = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    verif = Ecoute.apoids(tpoids);
                }
            };
     
    // le premier boutton s'appele fiche !!
                                fiche.addActionListener(atesterdaten);// teste la date //de naissance
                                fiche.addActionListener(atesterCin);//teste le CIN
                                fiche.addActionListener(atestertel);// teste le telephone
                                fiche.addActionListener(atesterpoids);//teste le poids
     
                                if(verif)//activer le 2eme bouton
                                    Ajouter.setEnabled(true);
                                else
                                JOptionPane.showMessageDialog(pan, "Verifiez votre saisie\nVous avez laissé une case vide\nou mal entré la valeur", "Mauvaise saisie ",JOptionPane.ERROR_MESSAGE) ;
    Merci de me proposer vos réponses !

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Met ton test concernant verif directement après les affectations de cette variable, dans les listener. Pour éviter la duplication de code, tu pourrais passer par une méthode.

    Pour l'explication : tout le code de ta classe est exécuté directement, donc le passage à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(verif)
                                    Ajouter.setEnabled(true);
                                else
                                JOptionPane.showMessageDialog(pan, "Verifiez votre saisie\nVous avez laissé une case vide\nou mal entré la valeur", "Mauvaise saisie ",JOptionPane.ERROR_MESSAGE) ;
    se fait dans l'unique cas ou verif est faux (sa valeur d'initialisation).

    Par contre, avec tes ActionListener, tu fais de l'événementiel, et ces bouts de codes seront déclenchés à chaque événements les déclenchant. Donc, c'est ici que tu dois activer (ou non) ton bouton, après avoir vérifié l'intégrité de tes données.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

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

  3. #3
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Met ton test concernant verif directement après les affectations de cette variable, dans les listener. Pour éviter la duplication de code, tu pourrais passer par une méthode.

    Pour l'explication : tout le code de ta classe est exécuté directement, donc le passage à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(verif)
                                    Ajouter.setEnabled(true);
                                else
                                JOptionPane.showMessageDialog(pan, "Verifiez votre saisie\nVous avez laissé une case vide\nou mal entré la valeur", "Mauvaise saisie ",JOptionPane.ERROR_MESSAGE) ;
    se fait dans l'unique cas ou verif est faux (sa valeur d'initialisation).

    Par contre, avec tes ActionListener, tu fais de l'événementiel, et ces bouts de codes seront déclenchés à chaque événements les déclenchant. Donc, c'est ici que tu dois activer (ou non) ton bouton, après avoir vérifié l'intégrité de tes données.
    Merci mais est-ce que vous pouvez détailler ? je n'ai pas bien saisi

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Mettre le test concernant la variable verif dans les listeners. Je l'ai aussi mis en méthode privée, histoire de ne pas avoir de code dupliqué inutilement.

    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
     
     
     
    	private void verification(boolean verif)
    		{
    			if(verif)//activer le 2eme bouton
    				Ajouter.setEnabled(true);
    			else
    				JOptionPane.showMessageDialog(pan, "Verifiez votre saisie\nVous avez laissé une case vide\nou mal entré la valeur", "Mauvaise saisie ",JOptionPane.ERROR_MESSAGE) ;
    		}
     
               ActionListener atesterdaten = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                   verification(Ecoute.atesterdaten(pan, jdaten));
                }
            };
     
                ActionListener atesterCin = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    verification(Ecoute.atesterCin(pan, jcin));
                }
            };
                ActionListener atestertel = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    verification(Ecoute.atestertel(jtel));
                }
            };
                ActionListener atesterpoids = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    verification(Ecoute.apoids(tpoids)
                }
            };
     
    // le premier boutton s'appele fiche !!
                                fiche.addActionListener(atesterdaten);// teste la date //de naissance
                                fiche.addActionListener(atesterCin);//teste le CIN
                                fiche.addActionListener(atestertel);// teste le telephone
                                fiche.addActionListener(atesterpoids);//teste le poids
    Accessoirement, est-ce que tu dois obligatoirement le faire dans 4 actionsListeners ? Au vu de ce qui est fait dedans, tu pourrais simplement faire tes 4 vérifications à la suite dans un seul, et activer ton deuxième bouton après, si les 4 vérifications sont bien vérifiées.

    Par contre, si tu as obligatoirement besoin que les 4 vérifications soient effectuées et passées avec succès, ce code n'est pas bon.

    Dans ce cas, je proposerai plutôt :

    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
    	ActionListener aTester = new ActionListener() {
    		public void actionPerformed(ActionEvent e) {
    			boolean verif = (Ecoute.atesterdaten(pan, jdaten));	//Initialisation du test
    			if (verif) verif = (Ecoute.atesterCin(pan, jcin));	    //on test la valeur de verif, histoire de ne pas faire de tests inutile, dans le cas ou il faut obligatoirement les 4 vérifications.
    			if (verif) verif = (Ecoute.atestertel(jtel));
    			if (verif) verif = (Ecoute.apoids(tpoids));
     
    			if(verif)//activer le 2eme bouton
    				Ajouter.setEnabled(true);
    			else
    				JOptionPane.showMessageDialog(pan, "Verifiez votre saisie\nVous avez laissé une case vide\nou mal entré la valeur", "Mauvaise saisie ",JOptionPane.ERROR_MESSAGE) ;
    		}
    	};
     
    fiche.addActionListener(aTester);
    Avec ce dernier code, tu actives le bouton uniquement dans le cas ou les 4 vérifications sont effectuées et correctes.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

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

  5. #5
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Merci infinement ca marche !!!

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

Discussions similaires

  1. Controle de saisie sur une liste déroulante
    Par antier dans le forum IHM
    Réponses: 3
    Dernier message: 07/12/2005, 05h42
  2. Controler une saisie
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2005, 10h36
  3. DBGrid personnalisé (controle de saisie numérique et date).
    Par abdelghani_k dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/04/2005, 18h50
  4. ptit probleme de controle de saisie de formulaire
    Par coachbob44 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/03/2005, 14h09
  5. [LG]contrôle de saisie
    Par zetterberg_10 dans le forum Langage
    Réponses: 8
    Dernier message: 10/02/2005, 13h55

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