Dites moi.
J'effectue un test sur une String de manière à pouvoir gerer le clique sur "annuler" d'une boite de dialogue et le fait que l'utilisateur n'est rien renseigné:
String number = ""; number +=JOptionPane.showInputDialog( this,"Entrez le N° Chrono recherché : ","Consultation entreprise par Code Postal",JOptionPane.QUESTION_MESSAGE); if ((!number.equals("")) & (number != null) & (!number.equals("null"))) { consult.consulterEntrepriseParChrono(number); donnees = consult.getDonnees(); if (!donnees.isEmpty()) //si on a trouvé des machines ayant le bon critère { creationDonneesEntrepriseToute(colonneEntrepriseToute, donnees); scroll.repaint(); etat.setText( "Données : Liste des entreprises ayant pour Numero Chrono " + number); //Changement barre d'etat } else //si les données sont vides on ne fait rien { JOptionPane.showConfirmDialog(null, "Aucune entreprise ayant pour Numero Chrono "+ number+ " trouvée !","Erreur",JOptionPane.OK_CANCEL_OPTION,JOptionPane.ERROR_MESSAGE); } } else { // System.out.println("Utilisateur à cliqué sur annuler"); }
Comment se fait-il que mon if est prit en compte alors que j'utilise un "&"(ET) dans mon test, alors que je devrais normalement utiliser un "|"(OU) pour que le test soit correct (si j'utilise le "OU", cela ne marche pas).
Mon test est "si la String est égale à truc, ou bien est égale à machin, ou bien, ...et pas "ET" (?).
Yoda?...
loool
Hors ligne
met 2 "&" pour voir
Hors ligne
Borusse a écrit:
met 2 "&" pour voir
Ben j'essayerai, mais le principe de doubler l'operateur logique est utile dan sle cas d'un "OU" car en mettant "||", on obtient un "OU exclusif", mais le "ET" est déjà exclusif (le seul cas où le réultat est "1" est que les 2 entrée sont à "1").
Bref, je ne sais pas si tout le monde suit, mais j'essayerai ton truc quand même.
Hors ligne
Lu Papy,
Sur ce coup je vois pas l'interet de mettre un "ou " car il faut bien que ta chaine reponde a tous les criteres pour que tu rentre dans le bloc de code non?
Pour doubler le caractère effectivement je pense pas que tu en ai besoin.
Explique plus clairement quesque tu veux obtenir de ton test stp.
Encore repondu avec un temps de retard mais bon ;-)
Hors ligne
En fait le problème est que la String renvoyée par le JoptionPane est égale à "null" si l'utilisateur à cliqueé sur "annuler".
Je veux rentrer dans mon if si la String n'est pas égale à "null", ou alors ni égale à "" (champ vide), et par optimisation ou alors que la String n'est pas été mise à null (evitement d'un java.lang.nullPointerException).
heu...
je suis en train de réaliser que c'ets bien un "ET" qu'il faut que j'utilise je crois bien...car il ne faut rentrer dans le "if" que si la Srting n'est ni null, ni égale à "null", ni égale à ""...donc j'ai bon depuis le début..non?
Hors ligne
Donc oui je pense que t'as bon depuis le debut, pour moi c'est bien des Et qu'il faut mettre, parcontre met la condition !=null en 1er pour eviter les null pointer exception. Si une des conditions n'est pas valides il doit pas tester les suivantes.
Bon dev'.
JB
Hors ligne
yoda a écrit:
Donc oui je pense que t'as bon depuis le debut, pour moi c'est bien des Et qu'il faut mettre, parcontre met la condition !=null en 1er pour eviter les null pointer exception. Si une des conditions n'est pas valides il doit pas tester les suivantes.
Bon dev'.
JB
Ha bon ?????
La jvm effectue les test dans l'ordre de lecture et pas au travers d'un thread ?????
dans un :
if((maString.equals("")) & (maString==null)) { ... }
tu veux dire que il regarde d'abord si la chaine est egale à "" avant de regarder si elle n'est pas null ???
Hors ligne
je veux pas dire de connerie mais il me semble.
Sinon tu vas etre obligé de decomposé ton test(d'abord <>null et le reste apres)
Hors ligne
il a raison jb, sa fait les ordres dans l'ordre avec les null
Hors ligne
Merci de ta confirmation Boris.
Hors ligne