TextField n'accepte que des nombres en java

Fermé
sfayna06 Messages postés 16 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 20 mars 2010 - 20 mars 2010 à 15:46
 Utilisateur anonyme - 22 mars 2010 à 02:25
je suis en cours de faire une application en java
SVP donner moi le code java pour qu'un TextField n'accepte que des nombres (0-9) si non affiche un message d'erreur
et merci,
A voir également:

1 réponse

Utilisateur anonyme
22 mars 2010 à 02:25
Salut,

Si ton JTextField ne doit contenir que les chiffres 0 à 9, c'est donc que ce sont des entiers.
Comme ce sont des entiers, tu vas devoir les convertir soit en byte, en short en int, en long ou en big...

Pour ce faire, le plus simple c'est (supposons qu'on utilise int).

Exemple:

int monEntier = 0;
try
         {
            monEntier = Integer.parseInt(leJTF.getText());
// s'il ne contient que des chiffres (0 à 9) c'est ok sauf si les limites int sont dépassées
// sinon une exception est levée
         }
             catch(NumberFormatException nfe)
            {
               System.out.println("NON NUM. OU TROP LONG   " + nfe.toString());
// c'est malheureusement la même exception pour les 2 cas.
               // demander l'entrée d'une nouvelle valeur
            }

               System.out.println("monEntier = " + monEntier);




Une autre méthode pour faire ce contrôle serait d'utiliser d'abord les expréssions régulières et seulement si le résultat est correcte du point de vue numérique, parser:
S'il n'y a pas l'exception NumberFormatException, on ne dépasse pas les limites...
Si la valeur est trop grande, ou trop petite pour int >>> erreur.

Cordialement,

Dan
1