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

Composants Java Discussion :

[JFormatedTextField] problème saisie avec masque


Sujet :

Composants Java

Vue hybride

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut [JFormatedTextField] problème saisie avec masque
    bonjour à tous ,

    je suis en train d'essayer de faire un pannel contenant des JFormattedTextFields et cela pour permettre à l utlisateur de l'interface de saisir des adresses IP le masque est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaskFormatter ipAddressMask = new MaskFormatter("###");
    Le problème c'est que si l'utilisateur n entre pas un nombre à TROIS chiffres ca bug.. par exple 230 --> ca marche alors que 5 ou 15 ca marche pas


    y aurait pas moyen de faire en sorte qu'il accepte aussi bien les nombres à 1, 2 ou 3 chiffres??

    merci

  2. #2
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    Tu peux tenter ce format :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    import java.text.FieldPosition;
    import java.text.NumberFormat;
    import java.text.ParsePosition;
    import java.util.StringTokenizer;
     
    /**
     * @author Muel
     *
     * An IPAddressFormat formats a number like an IP address. IPAddressFormat should be used in
     * conjunction with a JFormattedTextField like so:
     * <blockquote>
     * JFormattedTextField ipAddress = new JFormattedTextField(new IPAddressFormat());
     * </blockquote>
     */
    public class IPAddressFormat extends NumberFormat {
     
        private static final long LOCALHOST = 2130706433l;
        private static final int LOCALHOST_PARSE_POSITION = 9;
     
        /**
         * This method isn't used and returns null.
         * @param d
         * @param buffer
         * @param fp
         * @return
         * @see java.text.NumberFormat#format(double, java.lang.StringBuffer, java.text.FieldPosition)
         */
        public StringBuffer format(double d, StringBuffer buffer, FieldPosition fp) {
            return null;
        } //end format
     
        /**
         * Formats the long in the appropriate style for an IP address.
         * @param l
         * @param buffer
         * @param fp
         * @return
         * @see java.text.NumberFormat#format(long, java.lang.StringBuffer, java.text.FieldPosition)
         */
        public StringBuffer format(long l, StringBuffer buffer, FieldPosition fp) {
            StringBuffer buf = new StringBuffer();
            buf.append(new Long((l >> 24) & 0x000000ff).toString());
            buf.append(".");
            buf.append(new Long((l >> 16) & 0x000000ff).toString());
            buf.append(".");
            buf.append(new Long((l >> 8) & 0x000000ff).toString());
            buf.append(".");
            buf.append(new Long(l & 0x000000ff).toString());
            return buf;
        } //end format
     
        /**
         * Parses the text into a Long that represents the IP address.
         * @param text The text contained within the formatted text field.
         * @param pp The current ParsePosition.
         * @return A Long that represents an IP address. If the parsing fails the localhost IP is returned.
         * @see java.text.NumberFormat#parse(java.lang.String, java.text.ParsePosition)
         */
        public Number parse(String text, ParsePosition pp) {
            pp.setIndex(text.length());
            int c = 24;
            long l = 0;
            StringTokenizer tokens = new StringTokenizer(text, ".");
            try {
    	        while (tokens.hasMoreTokens() && c >= 0) {
    	            int value = Integer.parseInt(tokens.nextToken());
    	            if (value > 255) value = 255;
    	            else if (value < 0) value = 0;
    	            l |= (value << c);
    	            c -= 8;
    	        }
            } catch (Exception e) {
                pp.setIndex(LOCALHOST_PARSE_POSITION);
                return new Long(LOCALHOST);
            }
            return new Long(l);
        } //end parse
     
    } //end class
    Trouvé sur http://forum.java.sun.com/thread.jsp...sageID=2830342

    Je ne l'ai pas testé mais l'auteur dit qu'il marche!

Discussions similaires

  1. [AC-2007] Problème d'affichage de références avec masque de saisie
    Par lio33 dans le forum IHM
    Réponses: 4
    Dernier message: 03/02/2015, 11h21
  2. [2.x] Problème saisie avec TinymceBundle de stfalcon
    Par ray-k dans le forum Symfony
    Réponses: 1
    Dernier message: 30/07/2012, 11h20
  3. Problème de saisie avec le "."
    Par Pouf dans le forum ASP
    Réponses: 10
    Dernier message: 18/03/2005, 15h27
  4. problème avec masque de saisie dans table
    Par porki dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2004, 08h58

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