Comment tester un champt au format MaskFormatter

Résolu
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008 - 14 août 2007 à 12:22
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008 - 14 août 2007 à 15:38
salut,
j'ai du mal à tester un champ de texte pour savoir s'il est vide ou non. en fait c'est un objet JFormattedTextField et j'ai utlisé  MaskFormatter pour le filtre de saisie. mais quand j'essai de tester mon champ avec cette instruction:

if (chmp_txt.getText().equals(""))
  System.out.print("remplissez d'abord le champ");
else
   System.out.print("Bionjour");

en laissant le champ vide, cela m'affiche toujours bonjour, alors qu'il est sencé m'affiché le premier message.
quelqu'un peut me dire pourquoi mon test ne marche pas ?
merci

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 août 2007 à 14:34
Tu as testé la nullité du getText ou du getValue ???

Un champ JFormattedTextField doit s'utiliser avec le getValue et non le getText : le getText te renvoie ce qu'il affiche, c'est-à-dire parfois, ce qui n'est pas bon (vu que c'est validé à la validation du textfield !), le getValue lui par contre te renvoie la valeur exacte du champ : après validation !

C'est l'une des raisons de ma source d'ailleurs : enlever cette confusion en ne proposant que le get/setValue
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 août 2007 à 13:54
Essaye en testant plutôt la nullité du Value du JFormattedTextField.

Sinon, je te conseille d'utiliser mes typeControls (voir ma source portant ce nom) plutôt que les formatedtextfield : ils font la même chose mais en validant les données lors de la saisie et non pas lors de la validation, ce qui est plus intuitif pour l'utilisateur je trouve !
0
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
14 août 2007 à 14:29
j'ai deja essayé de tester la nullité ça ne marche toujours pas, et quand je fait un
System.out.print("Test "+chmp_txt.getText()),  pour voir ce que contient le champ,
il m'affiche " Test " et suivi du vide, c'est à dire rien après la chaine Test, ça veut dire que le champ est reellement vide. mais pourtant le test ne marche pas.
0
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
14 août 2007 à 14:56
bon j'ai testé la nullité du getText, mais apparament il n'est pas possible d'ecrire
chmp_txt.getValue()
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 août 2007 à 15:23
Ben je n'ai pourtant pas la berlue (tirée de la javadoc) :
 
Object
getValue()
Returns the last valid value.

T'es sûr que chmp_txt est bien ton JFormattedTextField ?
0
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
14 août 2007 à 15:38
c'est vrai t'as raison ça marche avec le getValue().
je te remercie beaucoup pour ton aide
bien à toi
0
Rejoignez-nous