Valider une extension, utilisation de regex?

Résolu
cs_harleen Messages postés 22 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 20 juillet 2009 - 29 juin 2009 à 11:24
cs_harleen Messages postés 22 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 20 juillet 2009 - 29 juin 2009 à 14:53
Bonjour à tous,


Je réalise actuellement une appli qui consiste à traduire un document XML d'un standard particulier vers un autre standard XML.


Pour cela, mon appli a deux textBox :

- une permettant de recueillir le text en entrée que l'on souhaite traduire

- une permettant de récupérer le nom du fichier de sortie crée


Or, je veux pour cela que l'utilisateur saisisse un nom de fichier de sortie d'extension.xml et pas autre chose.

Ainsi,lorsque l'utilisateur saisit un nom de fichier d'extension autre
que xml, le bouton de traduction ne s'affiche pas (reste enable), donc
tout va bien

dès qu'il saisit un nom de fichier.xml le bouton de traduction s'affiche.


Jusqu'ici tout est fonctionnel...

Or, lorsque l'utilisateur saisit un nom de fichier.xml et qu'il
supprime la dernière lettre de ce qu'il vient de saisir (autrement dit,
on a nomfichier.xml qui devient nomfichier.xm), le bouton de traduction
reste disponible car il a saisi auparavant une extension.xml qui a
permis de rendre le bouton disponible.


Je me demande s'il est indispensable de passer par les regex ou non.

N'hésitez pas si j'ai mal formulé mon problème, je tenterai de l'expliquer mieux si besoin est.

En vous remerciant d'avance pour votre aide ou vos pistes
Harleen

2 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
29 juin 2009 à 11:53
Salut,

Tu n'as aucun besoin de faire une regex pour si peu de chose : ajoute un événement sur ton JTextField, et teste les 4 derniers caractères saisis pour savoir s'il faut ou non afficher le bouton.

Un truc du genre (de tête, je te laisse corriger les éventuelles erreurs de compilation) :

String texte = tonJTextField.getText();
boolean afficher = (texte.length() > 4 && ".xml".equalsIgnoreCase(texte.substring(texte.length() - 4, 4));
tonBouton.setVisible(afficher);
3
cs_harleen Messages postés 22 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 20 juillet 2009
29 juin 2009 à 14:53
Merci beaucoup pour ton aide Darksidious, j'ai modifié quelque peu ce que tu m'as indiqué :

boolean afficher = (txtSortie.getText().length() > 4 && ".xml".equalsIgnoreCase(txtSortie.getText().substring(txtSortie.getText().length()-4)));

et ça marche super, merci encore!!

Harleen
0
Rejoignez-nous