verifier si un textField est vide, pourquoi sa marche pas ? [swing] - Java - Programmation
Marsh Posté le 13-04-2004 à 16:30:15
Jubijub a écrit : lis la javadoc |
arf je lavais vu dans la liste deroulante d eclipse, et je me suis dit ... hum non c est pour les objets ca.
Marsh Posté le 13-04-2004 à 16:40:41
ReplyMarsh Posté le 13-04-2004 à 18:30:34
xiluoc a écrit :
|
Code :
|
C'est mieux.
Marsh Posté le 13-04-2004 à 20:02:15
Jubijub a écrit : question optimisation : c quoi le moins couteux : checker si la longueur de la chaine est nulle, ou vérifier si elle est égale à "" ? |
le premier, mais pas de beaucoup. Par contre, les comparaisons inutiles, c'est plus lourd à lire.
Marsh Posté le 15-04-2004 à 11:13:45
Quand tu as un objet de type String, tu peux tester s'il est nul ou non avec l'opérateur ==
Code :
|
pour faire de la comparaison de chaîne il faut utilser les méthode equals() ou equalsIgnoreCase() et la méthode length() pour avoir la longueur.
et pour être sur d'avoir une chaîne valide il vaut mieux faire qqch comme ça :
Code :
|
Cependant, je ne suis pas sur que nameField.getText() renvoie null si le contrôle est vide. Il se peut qu'il renvoie une chaîne vide, ce qui n'est pas la même chose
Marsh Posté le 15-04-2004 à 12:05:54
à mon grand étonnement, getText() peut effectivement renvoyer null dans des cas assez bizzares (de DocumentLocation invalide, mais on prend 0 et length(), donc à moin que length() soit en vrac, il n'y a pas de raison que ça plante). Je viens d'aller voir le code source.
Mais c'est loin d'être un cas normal (en particulier, quand le champ est vide, ça renvoit bien une chaine vide). Je pense qu'on peut largement laisser remonter l'éventuelle NPE.
Marsh Posté le 13-04-2004 à 16:09:48
je comprend vraiment pas, ca la l air simple pourtant :
if (nameField.getText()==null) action
action ne se produit jammais , meme si je fais
if (nameField.getText()=="foo" )
Message édité par xiluoc le 13-04-2004 à 16:10:55