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
Partager