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

  FORUM HardWare.fr
  Programmation
  Java

  Probleme de double dans un JTextField

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de double dans un JTextField

n°1949012
bikergete
Posté le 10-12-2009 à 13:44:00  profilanswer
 

Salut a tous,
 
Voila mon problème:
je veux limiter la saisie dans un JtextField a un Double, avec ce code qui marche:
 
te = new JTextField();
         
        te.addKeyListener(new KeyAdapter()
        {
            public void keyTyped(KeyEvent k)
            {
                if (! Character.isDigit(k.getKeyChar()))
                {
                    k.consume();
                }
            }
        });
Je bloque effectivement tout ce qui n'est pas un nombre.
Mais je ne trouve pas comment autoriser le point ou la virgule.
Si quelqu'un sait comment faire, merci d'avance

mood
Publicité
Posté le 10-12-2009 à 13:44:00  profilanswer
 

n°1949101
brisssou
8-/
Posté le 10-12-2009 à 15:57:54  profilanswer
 

s'pas un peu violent ?
 
une validation à postériori, c'est pas plus simple et moins surprenant pour l'utilisateur qui se dit pas pas "tiens, mon clavier est pété"
 
sinon, dans ton if, tu testes ',' et '.', ça devrait le faire.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1949115
bikergete
Posté le 10-12-2009 à 16:15:52  profilanswer
 

Effectivement je rajoute un joptionpane.showmessage pour eviter les bris de clavier.
Mais je n'arrive pas a comparrer un Char et une String

n°1949116
brisssou
8-/
Posté le 10-12-2009 à 16:21:58  profilanswer
 

et matcher le champ complet sur NumberFormat ?

 

k.getKeyChar()==',' ?


Message édité par brisssou le 10-12-2009 à 16:24:48

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1949123
bikergete
Posté le 10-12-2009 à 16:33:14  profilanswer
 

Désolé: marche pas (k.getKeyChar()==',')
 
Tu veut dire quoi par matcher?
et j'ai pas trouver dans NumberFormat pour faire 120.25 par exemple

n°1949273
cbeyls
Hail to the King, Baby
Posté le 11-12-2009 à 01:30:51  profilanswer
 

Tu dois valider l'ensemble du texte présent dans le champ et pas uniquement le dernier caractère entré. Parce que tu ne peux avoir qu'une seule virgule, par exemple.
 
Le plus simple est que tu tentes de faire un Double.valueOf(string) et si une NumberFormatException est levée, tu refuses l'entrée sinon tu l'acceptes.
Une autre solution consiste à valider la chaîne entrée en la soumettant à une expression régulière, qui sera plus restrictive (n'autorisant pas les espaces au début et à la fin par exemple).

n°1949290
bikergete
Posté le 11-12-2009 à 08:36:38  profilanswer
 

C'est bon je trouvé hier soir:
 te = new JTextField();        
    te.addKeyListener(new KeyAdapter()
    {
        public void keyTyped(KeyEvent k)
        {
           if (!Character.isDigit(k.getKeyChar()) && k.getKeyChar() !=46)
                k.consume();
        }
    });
 
Je suis obligé de faire comme ça car quand je rentre un caractère je rempli un autre JTextField affecté d'un pourcentage.
J'ai regardé Matcher ça vas me servir pmus tard.
Merci de votre aide

n°1949363
cbeyls
Hail to the King, Baby
Posté le 11-12-2009 à 11:02:39  profilanswer
 

Mais si tu tapes 2 virgules ça ne fonctionnera pas.
 
Au lieu d'utiliser la valeur 46 tu peux aussi écrire: (int) ','

n°1949393
bikergete
Posté le 11-12-2009 à 11:38:29  profilanswer
 

En effet je récupère l'erreur sur le second JTextField.
Par contre j'aimerais faire le contraire, c'est a dire:
if(Character.isDigit(k.getKeyChar()) && k.getKeyChar() ==46)

n°1949397
bikergete
Posté le 11-12-2009 à 11:56:31  profilanswer
 

petite coupure internet!!
Je reprends:
 
if(Character.isDigit(k.getKeyChar()) && k.getKeyChar() ==46)  
je valide
else
k.consume();
 
Je ne trouve pas comment valider l'entrée

mood
Publicité
Posté le 11-12-2009 à 11:56:31  profilanswer
 

n°1949865
cbeyls
Hail to the King, Baby
Posté le 13-12-2009 à 16:52:20  profilanswer
 

Tu veux dire si c'est un digit OU une virgule.
Ca ne peut pas être les deux à la fois.

n°1951158
bikergete
Posté le 17-12-2009 à 12:58:50  profilanswer
 

j'autorise les chiffres et un point

n°1951164
cbeyls
Hail to the King, Baby
Posté le 17-12-2009 à 13:22:22  profilanswer
 

Je disais juste que ton && doit être un ||.

n°2294310
felofive
Nous sommes INFO
Posté le 04-01-2017 à 04:45:31  profilanswer
 

Je vous propose de consulter ce lien *********** qui m'a aidé à resourdre ce problème[][][/][/]

Message cité 1 fois
Message édité par Harkonnen le 10-01-2017 à 09:02:37
n°2294644
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 10-01-2017 à 09:02:23  profilanswer
 

felofive a écrit :

Je vous propose de consulter ce lien ******* qui m'a aidé à resourdre ce problème[][][/][/]


Etant donné la forte ressemblance entre ton pseudo (qui semble constitué des 3 premières lettres de ton prénom et de la première lettre de ton nom, auxquels tu as accolé "five" ) et ton nom/prénom présents sur le lien Youtube que tu as posté, ajouté au fait que le post initial a été posté il y a maintenant 8 ans, je suppose que tu comprendras parfaitement que j'édite ton post pour supprimer le lien étant donné qu'il s'agit sans aucun doute d'un spam.


---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
  FORUM HardWare.fr
  Programmation
  Java

  Probleme de double dans un JTextField

 

Sujets relatifs
[Pascal] problemeProblème de formulaire dans formulaire
Requête double en MySQLProblème requête ACCESS
probleme d'enregistrementProblème d'utilisation de Ada.Streams.Stream_Io;
problème ob_end_flush();Probleme(s) sur les Template
Probleme Look And Feel et Export.[ Resolu ] Probleme avec mon script menu
Plus de sujets relatifs à : Probleme de double dans un JTextField


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