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 :

RegexFormatter : la valeur saisie precedement revient en cas d'erreur.


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut RegexFormatter : la valeur saisie precedement revient en cas d'erreur.
    Bonjour,

    je cherche a faire une saisie de 10 chiffre j'utilise RegexFormatter

    avec comme fonction :
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package amsterdam_v1;
     
    import java.text.ParseException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import javax.swing.text.DefaultFormatter;
     
    /**
     *
     * @author A329820
     */
    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);
        }
    }
    Mais si je fait une saisie de 10 chiffre je valide, je revient pour modifier mais ne met que 9 (ou moins) caracteres, les 10 chiffre precedant reviennent.

    une petite idée?

    Je ne voi pas dans la java doc ce qui pourrai resoudre ce problem

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    J'ai esseyé un maskFormat mais ca me donne le meme resultat.

    Je me suis retourné sur la methode des feignant en testant la longueur du String et renvoyer un message d'erreur le cas echéant, mais ca pas top quoi.

    Qu'es ce que j'aurai raté ou/et que je n'aurais pas compri dans la java doc sur le RegexFormatter SVP!!!!!

    RegexFormatter semble convenir a mon besoin mais la c'est une petite tuile qui rend le prog non livrable sous cette forme, et pas tres ergonomique par la methode des feignasse

    Merci

Discussions similaires

  1. [C#][WinForms][DataGrid]Vérifier les valeurs saisies
    Par loverdose dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/12/2005, 11h29
  2. Réponses: 18
    Dernier message: 15/11/2005, 10h13
  3. tester le type d'une valeur saisie
    Par lalaurie40 dans le forum C
    Réponses: 1
    Dernier message: 09/10/2005, 21h52
  4. Réponses: 7
    Dernier message: 15/03/2005, 14h44
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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