Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1834 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [swing] verifier si un textField est vide, pourquoi sa marche pas ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[swing] verifier si un textField est vide, pourquoi sa marche pas ?

n°698381
xiluoc
un pc pour les unirs ....
Posté le 13-04-2004 à 16:09:48  profilanswer
 

:hello:  
 :fou:  
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" )  
 
 

Code :
  1. public class StartGUI implements ActionListener
  2. {
  3. private JTextArea welcomeNote ;
  4. private JButton start ;
  5. private JLabel name;
  6. private JTextField  nameField;
  7. private JPanel mainPanel;
  8. private JPanel upPanel;
  9. private JPanel downPanel;
  10. public StartGUI()
  11. {
  12. //......
  13.  //down panel
  14.  downPanel = new JPanel();
  15.  start = new JButton("start" );
  16.  start.addActionListener(this);
  17.  nameField = new JTextField(15);
  18.  name = new JLabel("<html><i>Name : </i></html>" ) ;
  19.  downPanel.add(name);
  20.  downPanel.add(nameField);
  21.  downPanel.add(start);
  22. //......
  23. }
  24. public void actionPerformed(ActionEvent e)
  25. {
  26.   if (nameField.getText()==null)
  27.   {
  28.    JOptionPane.showMessageDialog(null,"Enter your name !", "Error", JOptionPane.ERROR_MESSAGE);
  29.   }
  30.   else JOptionPane.showMessageDialog(null, nameField.getText(), "Error", JOptionPane.ERROR_MESSAGE);
  31. }
  32. }


Message édité par xiluoc le 13-04-2004 à 16:10:55
mood
Publicité
Posté le 13-04-2004 à 16:09:48  profilanswer
 

n°698392
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 16:26:00  profilanswer
 

lis la javadoc ;)
 
Pour un String, les == marchent pas...
 
c la méthode .equals() qui marchera...


---------------
Jubi Photos : Flickr - 500px
n°698401
xiluoc
un pc pour les unirs ....
Posté le 13-04-2004 à 16:30:15  profilanswer
 

Jubijub a écrit :

lis la javadoc ;)
 
Pour un String, les == marchent pas...
 
c la méthode .equals() qui marchera...


arf je lavais vu dans la liste deroulante d eclipse, et je me suis dit ... hum non c est pour les objets ca.     [:dams86]  

n°698402
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 16:31:39  profilanswer
 

rappelle moi ce qu'est un String ?


---------------
Jubi Photos : Flickr - 500px
n°698414
xiluoc
un pc pour les unirs ....
Posté le 13-04-2004 à 16:40:41  profilanswer
 

Jubijub a écrit :

rappelle moi ce qu'est un String ?


pas une primitive  :whistle:

n°698509
nraynaud
lol
Posté le 13-04-2004 à 18:30:34  profilanswer
 

xiluoc a écrit :

:hello:  
 :fou:  
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" )  
 
 

Code :
  1. if (nameField.getText()==null)




Code :
  1. if (nameField.getText().length() == 0)


C'est mieux.


---------------
trainoo.com, c'est fini
n°698587
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 19:55:44  profilanswer
 

question optimisation : c quoi le moins couteux : checker si la longueur de la chaine est nulle, ou vérifier si elle est égale à "" ?


---------------
Jubi Photos : Flickr - 500px
n°698598
nraynaud
lol
Posté le 13-04-2004 à 20:02:15  profilanswer
 

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.


---------------
trainoo.com, c'est fini
n°699965
pascal34
one point !
Posté le 15-04-2004 à 11:13:45  profilanswer
 

Quand tu as un objet de type String, tu peux tester s'il est nul ou non avec l'opérateur ==  

Code :
  1. String text = nameField.getText();
  2. if(text == null) { /*faire qqch*/ }
  3. else { /*Faire autre chose*/}


 
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 :
  1. String text = nameField.getText();
  2. if(text != null && text.length()>0)
  3. {
  4. /* là je peux travailler sans risque sur ma chaîne
  5. et appeler des méthodes car objet non nul à coup sur.
  6. */
  7. }


 
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

n°700027
nraynaud
lol
Posté le 15-04-2004 à 12:05:54  profilanswer
 

à 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.


---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [swing] verifier si un textField est vide, pourquoi sa marche pas ?

 

Sujets relatifs
Verifier tous les champs d'un coup?pb de eventHandling avec swing, comment faire dans ce cas ?
Batch qui ne marche pas. Où est le problème ?Verifier une table MySQL ... Et les résultats ...
Un parser validant dans une servlet qui marche ?help ! seekg et ifstream , ça marche pas !
[Swing][jpanel]Afficher une image dans un jpanel[Swing][jtree]Problemes d'icones....
Marquage d'une catégorie d'objet : interface vide ou flag booleén ?<link> marche sous IE mais pas sous mozilla ???
Plus de sujets relatifs à : [swing] verifier si un textField est vide, pourquoi sa marche pas ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR