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

AWT/Swing Java Discussion :

JFormattedTextField et nombre de caractères


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut JFormattedTextField et nombre de caractères
    Bonjour,

    j'avais une petite question. J'utilise un JFormattedTextField où j'autorise certains caractères via la méthode setValidCharacter d'un MaskFormatter.
    Tout marche très bien mais en revanche, l'utilisation du MaskFormatted m'oblige à rentrer un certain nombre de caractères alors que mon unique but est d'empecher l'utilisateur de rentrer des caractères non valides.

    Avez vous une idée? Merci pour vos réponses et bonne journée.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Le plus simple serait de passer par un formatter basé sur les expressions régulires:

    Code : 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
     
    import java.text.ParseException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    import javax.swing.text.DefaultFormatter;
     
    public class RegexFormatter extends DefaultFormatter {
     
        private Pattern pattern;
     
        /**
         *
         */
        public RegexFormatter() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        public RegexFormatter(String pattern) {
            super();
            this.pattern = Pattern.compile(pattern);
            // TODO Auto-generated constructor stub
        }
     
     
        public Object stringToValue(String text) throws ParseException {
            Pattern pattern = getPattern();
     
            if (pattern != null) {
                Matcher matcher = pattern.matcher(text);
     
                if (matcher.matches()) {
                    return super.stringToValue(text);
                }
                throw new ParseException("Pattern did not match", 0);
            }
            return text;
        }
     
     
        public Pattern getPattern() {
            return pattern;
        }
     
     
        public void setPattern(String pattern) {
            this.pattern = Pattern.compile(pattern);
        }
    }

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonsoir,

    je te remercie pour ta réponse mais après être allé voir sur la JavaDoc ce qu'était la classe pattern, j'ai encore un peu de mal à voir comment l'utiliser même si tu me fournis un code tout fait.

    Pourrais tu me donner quelques explication supplémentaires?

    Merci et bonne soirée.

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait à la contruction tu lui passe une expression régulière, voilà un petit cours du coin sur les expressions régulières en java: http://cyberzoide.developpez.com/java/regex/regex.pdf

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Merci, je vais regarder ca, bonne journée.

Discussions similaires

  1. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  2. Réponses: 7
    Dernier message: 16/11/2004, 15h45
  3. Réponses: 2
    Dernier message: 21/09/2004, 19h01
  4. [JTextField] Limiter le nombre de caractères
    Par thomas_strass dans le forum Composants
    Réponses: 2
    Dernier message: 08/09/2004, 14h06
  5. nombre de caractère retourné...
    Par sonialem2000 dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/08/2004, 04h06

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