IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Empecher la saisie de caractères non numériques dans un JTextField


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut Empecher la saisie de caractères non numériques dans un JTextField
    Bonjour,
    J'utilise netbeans, et dans un champs jTextField je dois saisir uniquement que des caractères numeriques. Comment donc empecher la saisie des caractères alphanumeriques.

    Merci de votre aide!

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    il faut que tu fasses un KeyListener sur ton JTextField et dans KeyPress tu autorises que les touches entre 1-9.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par XxArchangexX Voir le message
    il faut que tu fasses un KeyListener sur ton JTextField et dans KeyPress tu autorises que les touches entre 1-9.
    il y a bien plus simple. En partant de l'exemple fourni par la javadoc on peut donc écrire :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    public class CustomTextField extends JTextField
    {
        public CustomTextField()
        {
            super();
        }
     
        @Override
        protected Document createDefaultModel()
        {
            return new FileCaseDocument();
        }
     
        static class FileCaseDocument extends PlainDocument
        {
            boolean canInsert = false;
            String text = null;
            String str1, str2;
     
            @Override
            public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
            {
     
                if (str == null ||  this.getLength()>=20) // pas plus de 20 caractères
                {
                    return;
                }
     
    // pour gérer les copier-coller ou les insertions de nombres dans le champ
                text = this.getText(0, this.getLength());
                str1 = text.substring(0, offs);
                str2 = text.substring(offs, this.getLength());
     
                text = str1+str+str2;
     
                // on autorise uniquement les entiers positifs et négatifs
                canInsert = text.matches( "(-[1-9][0-9]*)|(0)|([1-9][0-9]*)" );
     
               // nombre négatifs : on autorise le signe "-"
                if (str.compareTo("-")==0 && this.getLength()==0)
                {
                    canInsert = true;
                }
     
                if (canInsert)
                {
                    super.insertString(offs, str, a);
                }
             }
        }
    }

Discussions similaires

  1. [PL/SQL] Supprimer les caractères non numériques
    Par Oliveuh dans le forum PL/SQL
    Réponses: 6
    Dernier message: 25/06/2015, 12h13
  2. Caractères non respectés dans une saisie de formulaire.
    Par varilux56 dans le forum Langage
    Réponses: 6
    Dernier message: 04/10/2014, 11h28
  3. Réponses: 2
    Dernier message: 18/04/2012, 09h56
  4. Réponses: 3
    Dernier message: 25/04/2007, 16h57
  5. Réponses: 8
    Dernier message: 22/06/2005, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo