salut,
Voila la question est déja dans le titre , je veux svoir comment utiliser les expressiosn regulieres pour valider le contenu d'un jtextfield
merci
salut,
Voila la question est déja dans le titre , je veux svoir comment utiliser les expressiosn regulieres pour valider le contenu d'un jtextfield
merci
Si c'est pour vérifier en direct cela doit pouvoir ce faire en implémentant un Document, sinonCode:textField.getText().matches(".*");
je vois c'est un peu difficile pour moi :( , en effet je me propose d'ajouter deux jformattedtextfield a ma frame pour sasisr des valeurs obeissant aux formatx suivants;
premier format:
###°##'##.## - vous avez donc compris qu'il s'agit d'une positin en degre )
Pour ce format les trois premiers chiffres désignat les degrés peuvent être restreints a deux donc si l'utilisateur saisi 12°ce ,n'est pas une valeur erroné mais par contre la valeur manquante doit être remplacée par un zéro pour donner : 012°..
deuxieme format:
X##:##:## ( pour un offset horaire : exemple de valeurs +02:15:59 ou -11:23:56 )
aurais tu une idée comment mettre un bon masque pour les deux cas pour que le texte soit validé?
merci
Ce que tu peux faire, c'est utiliser de simples JTextField auxquels tu rajoute un FocusListener qui vérifie le format lorsque le focus est perdu (l'utilisateur quitte le JTextField).
Exemple pour le JTextField contenant la position en degré
Je te laisse le soin de faire la même chose pour l'offset horaire ;).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 JTextField degreTextField = new JTextField(); degreTextField.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { String content = degreTextField.getText(); if("".equals(content)) { // On accepte que le champ soit vide donc on ne fait rien return; } if(content.matches("\\d{2,3}°\\d{2}'\\d{2}\\.\\d{2}")) { // Le texte est bon // Ajout du "0" en début de chaine si nécessaire if(content.length() == 11) { degreTextField.setText("0" + content); } } else { // Le texte n'est pas bon // On efface le texte degreTextField.setText(""); // Eventuellement afficher un message d'erreur } } });
Tu peux aussi utiliser des JFormattedTextField...
http://prevert.upmf-grenoble.fr/Prog...TextField.html
oui je sais ca storm :) j'ai bien dit ca dés le depart , le probleme n'est pas le jformattedtextfield mais le format un peu complexe :)
merci