Gestion d'exception sur un JoptionPane.showInputDialog

Résolu
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 24 août 2012 à 13:36
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 27 août 2012 à 12:51
Bonjour à Tous
J'utilise un JOptionPane.showInputDialog pour saisir le nom d'un client dans mon application. Quand je click sur "OK" ça marche bien mais lorsque je click sur le bouton "Annuler" il est levé une exception. de ce type ;
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mti.ReglementDeLaFacture$1.actionPerformed(ReglementDeLaFacture.java:132)



Voici le code de mon JOptionPane.showInputDialog.

int compteur = -1;
while(compteur < 0)
{
str = JOptionPane.showInputDialog(null, "Saisissez le nom du client" ,getTitle(),JOptionPane.INFORMATION_MESSAGE);

if(str.length() > 0)
{
compteur++;
System.out.println("Merci pour le resultat");
}else
{
System.out.println("Entrer votre nom à nouveau");
}
}			


je ne voudrais pas catcher l'exception . mais est_ce qu'il y a une autre façon de faire afin d'eviter de lever l'exception
merci pour votre aide

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 août 2012 à 13:56
Salut,
int compteur = -1;
while(compteur < 0)
{
str = JOptionPane.showInputDialog(null, "Saisissez le nom du client" ,getTitle(),JOptionPane.INFORMATION_MESSAGE);

if(str!=null && str.length() > 0)
{
compteur++;
System.out.println("Merci pour le resultat");
}else
{
System.out.println("Entrer votre nom à nouveau");
}
}	
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 août 2012 à 14:02
Ce n'est pas très propre comme code, ca, c'est un peu mieux :
String str=null;
while(str==null || str.length()==0){
System.out.println("Entrer votre nom à nouveau");
str = JOptionPane.showInputDialog(null, "Saisissez le nom du client" ,getTitle(),JOptionPane.INFORMATION_MESSAGE);
}	
0
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014
27 août 2012 à 12:51
Merci Julien39
a partir de ta proposition j'ai pu produire ce code

String nomclient    ="";
int cpt = -1;

while(cpt < 0)
{
nomclient = JOptionPane.showInputDialog(null, "Saisissez le nom du client" ,"Gestion de stock - Midas Touch Inc.",JOptionPane.INFORMATION_MESSAGE);
if(nomclient!=null)
{
if(nomclient.length() > 0)
{
nomclient = nomclient.toLowerCase();
cpt++;
System.out.println("Merci pour le resultat");
}else
{
System.out.println("Entrer votre nom à nouveau");
}

}else
{
break;
}
}

ce code marche bien Merci encore pour ton aide
0
Rejoignez-nous