Control de la saisi dans un JTextField

Fermé
hoami Messages postés 31 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 14 avril 2010 - 17 mars 2010 à 15:10
 Imaad - 15 juil. 2013 à 13:44
Bonjour,
quelqu'un pourrait t-il svp me donner l'astuce pour empécher la saisie des caractères accentués et des caractères spéciaux (tel que :é, à, ù, ...., et $, <, !, etc)dans un java JTextField .
Merci
A voir également:

6 réponses

Utilisateur anonyme
18 mars 2010 à 06:06
Re,

Un détail tout de même:

Il faut disposer d'au moins la version 1.6 de Java.

En plus, en ajoutant cette réponse, je me rend compte qu'il n'y a pas que le accents que tu ne veux pas, mais aussi les caractèrres spéciaux.

Il faudrait donc par exemple utiliser les expressions régulières.

Précise nous exactement ce que tu veux refuser en plus des accents.

Dan
1
dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
17 mars 2010 à 15:54
salut, peut etre en mettant un keylistener sur ton jtextfield, et quant il detect un de ces caracteres prendre le contenue du jtextfield supprimer ce caractere et replacer la valeurs dans le jtextfield. Apres y a peut etre plus simple. Mais si non peut etre juste faire un traitement sur l'envoie du jtextfield en remplaçant et supprimant les caractere indésirable.
0
Utilisateur anonyme
17 mars 2010 à 17:49
Salut,

Tu laisses saisir avec ou sans accents (en précisant peut-être qu'il est inutile de les saisir).

Et tu utilises cette petite méthode pour supprimer les accents saisis éventuellement:

      public String sansAccents(String source) // import java.text.Normalizer;
      {
         return Normalizer.normalize(source, Normalizer.Form.NFD).replaceAll("[\u0300-\u036F]", "");
      }

// Appel depuis le listener:

         String source = sansAccents(source); // source étant le contenu de ton JTextField

Cordialement,

Dan



Cordialement,

Dan
0
hoami Messages postés 31 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 14 avril 2010
18 mars 2010 à 19:40
Dariumis merci pour la réponse mais avec ce que tu me conseil je serais obligé de mettre tous les caractere dont j'ai pas besoin ds un tableau pour faire la comparaison avec le text.getText() et imagine le nombre de caractères à renseigner pour le tableau vue ce qu'il y en a sur le clavier!!!

Pour être plus clair: je voudrais que mon JTextField n'accepte que les lettres de a à z et les chiffres de 0 à 9.
pas d'accents ni de caractères tels que : <, >, !, ;, :, $, etc, voir tout ce qu'il ya comme caractère spéciaux sur un clavier. Tout ce qui ne fait pas parti de l'alphabet francais.
J'espère que j'ai été clair.

Best Regards.
Ablé
0

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

Posez votre question
Salut,

Si tu veux essayer ceci, çà devrait répondre à tes besoins.

//import java.util.regex.Pattern; 
//import java.util.regex.Matcher; 
          
int nombre = 0; 

String chaine = "Bonjour à tous les 3."; 
      // Les caractères à refuser: 
Pattern pattern = Pattern.compile("[^A-Z&&[^a-z&&[^0-9&&[^ ]]]]"); 
// ce qui signifie ce qui n'est pas A à Z ([^A-Z), ni a à z (&&[^a-z), ni 0 à 9(&&[^0-9, ni espace(&&[^ ]]]] 
// si l'espace n'est pas non plus accepté: ("[^A-Z&&[^a-z&&[^0-9]]]"); 
Matcher matcher = pattern.matcher(chaine); 
          
while(matcher.find())  
{ 
 nombre++; 
} 
if(nombre >0) 
System.out.println("\nIl y a " + nombre + " lettre(s) (ou caractere(s)) non conforme(s) !!!");  // bien entendu redemander une saisie correcte...
else 
System.out.println("\nIl n'y a pas de lettre(s) (ou caractere(s)) non conforme(s) !!!"); 




Cordialement,

Dan
0
hoami Messages postés 31 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 14 avril 2010
19 mars 2010 à 13:43
Salut,

j'ai test ton bout de code et ca marche parfaitement, maintenant je vais essayer de l'adapter a mon programme.
J'avoue que je n'avait encore jamais rencontré la classe regex.
Big thanks.

Best Regards,

Ablé
0
Saluut pass moi le bout de code que vous avez trouvez j'ai besoin de ce code si c possible
Cordialement
0