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 :

Multiples vérifications sur multiples variables


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Multiples vérifications sur multiples variables
    Salut tout le monde, je suis grand débutant en Java et je m'arrache les cheveux sur mon 1er projet : j'ai créé une fenetre avec une série de JTextfields pour saisir les coordonnées de clients, avec un écouteur sur le bouton de validation.

    public class actionNewFicheClient implements ActionListener{
    public void actionPerformed(ActionEvent e) {

    /////////// test de validité des infos saisies ////////////

    // pas de n° de client
    if(numClient.getText().length()==0){
    System.out.println("ERREUR : pas de n° de client");
    }
    // pas de prenom
    else if(pname.getText().length()==0){
    System.out.println("ERREUR : pas de prénom");
    }
    // pas de nom
    else if(name.getText().length()==0){
    System.out.println("ERREUR : pas de nom");
    }
    // pas d'adresse
    else if(adresse.getText().length()==0){
    System.out.println("ERREUR : pas d'adresse");
    }
    // pas de code postal
    else if(codePostal.getText().length()==0){
    System.out.println("ERREUR : pas de code postal");
    }
    // pas de ville
    else if(ville.getText().length()==0){
    System.out.println("ERREUR : pas de ville");
    }

    else{
    System.out.println("ajout du nouveau client");

    // création du nouvel objet CLIENT
    Client cl1 = new Client (
    Integer.parseInt(numClient.getText()),
    pname.getText(),
    name.getText(),
    adresse.getText(),
    Integer.parseInt(codePostal.getText()),
    ville.getText()
    );

    FenSaisieClient.setVisible(false); // fermeture de la fenetre
    new Fenetre(); // retour à la fenetre d'accueil
    }

    ----------------

    mon problème est le suivant : je voudrais aussi vérifier que pour le n° client et le code postal on a bien mis des chiffres et pas des lettres.
    en fouinant sur le net j'ai trouvé du code qui fait ça très bien :

    // le numero client doit etre constitué de chiffres
    try {int i = Integer.parseInt(numClient.getText());}
    catch (Exception exCL1) {
    System.out.println("ERREUR : le n° client doit etre constitué de chiffres");
    }

    // le code postal doit etre constitué de chiffres
    try {int i = Integer.parseInt(codePostal.getText());}
    catch (Exception exCP2) {
    System.out.println("ERREUR : le n° client doit etre constitué de chiffres");
    }
    // le code postal doit contenir UNIQUEMENT 5 chiffres
    if(codePostal.getText().length()!=5) {
    System.out.println("ERREUR : un code postal doit comporter 5 chiffres");
    }

    le soucis est que je ne parviens pas à intégrer ce code au milieu de ma série de "else if"


    d'autre part ya bcp de répétition de code (if(xxxxxxx.length()==0)), ça fait pas très "DRY", surtout que j'ai aussi une fenetre de saisie "Produit" à faire où je devrais effectuer les mêmes vérifications.
    faire un appel de méthode dans une classe extérieure "Verif" serait peut être plus simple, mais je ne maitrise pas du tout cette technique...

    help please

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 659
    Points
    2 659
    Par défaut
    Tu peux faire une méthode verifieChamp ou tu mettra ton xxx.length==0 pour le factoriser. ça peut avoir un intérêt si après tu décides de mettre d'autre critères (comme xxx!=null && ...).

    Quand a tes bouts de code, tu a juste a les rajouter dans ta série de vérification, je ne vois pas très bien le problème?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    merci mais ça ne répond pas à mes questions :
    - comment j'insère les "try" parmis mes "else if"
    - comment je construis et appelle ma méthode externe "vérif"
    pensez bien que je n'ai eu que 20h de cours de Java, je débute

  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
    Citation Envoyé par Morby Voir le message
    merci mais ça ne répond pas à mes questions
    J'ai pourtant l'impression que deathness répond à ta question moi.

    Citation Envoyé par Morby Voir le message
    comment j'insère les "try" parmis mes "else if"
    Tu ne les insères pas, tu les mets à la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (toto.length() == 0) {
      ... // Erreur
    } 
    try {
      Integer.parseInt(toto);
    } catch (Exception e) {
      ... // Erreur
    }
    // TODO : Etc
    Citation Envoyé par Morby Voir le message
    comment je construis et appelle ma méthode externe "vérif"
    Quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void actionPerformed(ActionEvent e) {
      if (this.verifTailleChamp(toto) == false) {
        // Erreur
      }
      // TODO : Etc
    }
     
    private bool verifTailleChamp(String nom) {
      if (nom == 0) {
        return false;
      } else {
        return true;
      }
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    merci pour ta réponse Robin, ça m'aide
    j'essaye ça demain

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    finalement tes indications m'ont aidé à me sortir de mon bourbier pour parvenir à ce que je voulais en le faisant à ma sauce. si jamais quelqu'un tombe sur le même prb que moi, voici la soluce que j'ai utilisé :


    - avant ma batterie de tests, j'ai créé une variable booléenne que j'ai initialisée sur "true"
    boolean verif = true;
    - lors de chaque test de type "if", si le JTextfield est vide mon booléen passe en "false"
    // pas de No de client
    if(numClient.getText().length()==0){
    verif = false;
    JOptionPane.showMessageDialog(null,"ERREUR : pas de No de client");
    }

    - suite à quoi j'enchaine les tests avec les "try" et sans mettre de "else"

    // le numero client doit etre constitue de chiffres
    try {
    int i = Integer.parseInt(numClient.getText());
    }
    catch (Exception exCL1) {
    if(verif){
    verif = false;
    JOptionPane.showMessageDialog(null,
    "ERREUR : le numero client doit etre constitue uniquement de chiffres");
    }
    }

    - et enfin si toutes les conditions de verifications sont remplies (verif toujours sur "true"), on cree le client avec un appel de méthode

    if( verif){
    creaClient();
    }
    j'ai pas encore fait la factorisation de la requête if(xxxxx.getText().length()==0), on verra ça à la fin quand j'aurais résolu mes autres prbs de conception.
    encore merci pour le forumo-guidage

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/07/2013, 12h11
  2. Fonction index ou find sur une variable multiple
    Par mohamed_ dans le forum SAS Base
    Réponses: 5
    Dernier message: 22/02/2013, 18h02
  3. Test multiple sur une variable non définie
    Par Rei Angelus dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/12/2007, 22h01
  4. Clause sur multiples champs 1 variable
    Par hugo69 dans le forum Débuter
    Réponses: 1
    Dernier message: 06/10/2006, 17h10
  5. Vérification select multiple
    Par francisb44 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2006, 15h34

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