JOptionPane.showInputDialog() ne veux pas partir - Java - Programmation
Marsh Posté le 19-05-2004 à 00:19:37
je dirais que ca vient du while...à tout les coups le truc qui l'execute se lance X fois, et des fois il doit arriver que les conditions du while se vérifie 2x de suite... 
 
essaye avec un if...pis tes conditions font un peu doublon : si une chaine est nulle, sa length est de 0, et vice versa...
Marsh Posté le 19-05-2004 à 00:29:18
| Jubijub a écrit : à tout les coups le truc qui l'execute se lance X fois  | 
 
 
Apres verification il s'agit bien du truc qui lance qui s'execute deux fois, cette portion de code n'est donc pas incriminé  
 
 
Merci pour m'avoir aidé a resoudre le probleme ! 
 
| Jubijub a écrit : pis tes conditions font un peu doublon : si une chaine est nulle, sa length est de 0, et vice versa...  | 
 
Es tu sur de ca ?! A mon avis, ce n'est pas pareil dans un sens comme dans l'autre.
Marsh Posté le 19-05-2004 à 00:38:44
explique moi bien pourquoi... 
 
une string à null possède 0 char, donc sa length est 0... = "" si tu préfères... 
 
maintenant, une string ne contenant aucun char est nulle... 
 
| Citation :   | 
 
 
Tiré de la Javadoc 1.4.2 
 
--> pour une raison X, ton while s'execute 2x...essaye avec un IF : si le bug persiste, c que ton truc est appellé 2x...sinon, c que c le while qui s'execute 2x, et que donc les conditions du while ne changent pas assez vite pour éviter ça...
Marsh Posté le 19-05-2004 à 00:52:11
> une string à null possède 0 char, donc sa length est 0... = "" si tu 
> préfères... maintenant, une string ne contenant aucun char est 
> nulle... 
 
Une String à null possède zéro caracteres parsqu'elle n'existe pas. En appelant length() on se retrouve avec un NullPointerException. 
 
 
> pour une raison X, ton while s'execute 2x...essaye avec un IF : si le 
> bug persiste, c que ton truc est appellé 2x... 
 
Oui c'était ça. 
Marsh Posté le 19-05-2004 à 00:55:46
| souliane a écrit : > une string à null possède 0 char, donc sa length est 0... = "" si tu  | 
 
 
--> oui donc c pas la peine de tester les 2, l'un impliquant l'autre...Teste tu verras... 
 
--> ct sur et certain le coup du while (pour tout dire j'ai eu le bug de matin même, donc ct frais dans ma tete  
  )
 )
Marsh Posté le 19-05-2004 à 01:13:23
> oui donc c pas la peine de tester les 2, l'un impliquant 
> l'autre...Teste tu verras... 
 
Mmmm... et tu as testé toi ?  
 
Moi oui ben c'est pas comme tu dis ! 
 
Voila exactement comment ca marche : 
 
String a = ""; 
if(a==null) 
  System.out.println("a est null" ); 
else 
  System.out.println("a est pas null" ); 
String b = null; 
  System.out.println(b.length()); 
 
Ca ecrit "a est pas null" et java.lang.NullPointerException
Marsh Posté le 19-05-2004 à 01:21:46
| Jubijub a écrit : explique moi bien pourquoi...  | 
heeeeeeeerrk 
 
 
CECI EST UNE VASTE CONNERIE garde ton test. 
 
faire null.lenght() lève une NullPointerException (appelée NPE dans l'intimitée). 
 
par contre, avec le test s == null || s.length() == 0, on est sûr qu'il n'y aura pas de NPE, car le || est spécifié comme "à court circuit" dans la référence : 
http://java.sun.com/docs/books/jls [...] html#54532 
 
Marsh Posté le 19-05-2004 à 08:46:16
| Jubijub a écrit :   | 
 
 
Aaaaaah, quelle horreur!! Non mais ça va pas???? 
 
Quand tu fais  
 
String s = ""; 
 
ben s != null; 
et s.length() == 0 est vrai!! 
 
Alors que String s; 
s == null est vrai, 
s.length() --> NullPointerException. 
 
non mais. 
 
Edit : oups, y'avait déjà nraynaud qui avait réagi!  J'ai pas lu tout le post, je me suis arrêté à l'imfamie!
 J'ai pas lu tout le post, je me suis arrêté à l'imfamie! 
Marsh Posté le 19-05-2004 à 00:09:18
Bonjour,
J'ai une méthode qui s'occupe de récupérer une chaine de caractere saisie au clavier par l'utilisateur, ceci à l'aide d'un JOptionPane. Quelque chose dans ce genre :
while (s==null || s.length() == 0) {
s = JOptionPane.showInputDialog(c,"Entrer votre nom :" );
}
Pourquoi cette boite de dialogue s'affiche presque tous le temps deux fois de suite ?