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 :

Utilisation d'un JFormattedTextField et d'un masque


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut Utilisation d'un JFormattedTextField et d'un masque
    Bonjour, je cherche à utiliser un JFormattedTextField et un maque sur un petit programme. Je me suis inspiré d'ici et ça

    Voici où j'en suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Field extends JFormattedTextField implements FocusListener, ActionListener, MouseListener {
        private AbstractFormat format;
     
        public Field (AbstractFormat format) {
            super(format);
            this.format = format;
            this.setColumns(format.getLenth());
            this.setText("");//format inits field text
        }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public abstract class AbstractFormat {
        private MaskFormatter mask;
        private int lenth;
     
        public AbstractFormat(int lenth) {
            this.lenth = lenth;
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Numeric extends AbstractFormat {
        private int length;
     
        public Numeric(int length) {
            super(length);
            String maskString = "";
            for (int i=0; i<length; i++) {
                maskString += "#";
            }
            try {this.setMask(new MaskFormatter(maskString));}
            catch (ParseException ex) {ex.printStackTrace();}
        }
    }
    Mon but ici est d'avoir un champs qui ne contient que des chiffres (length au maximum). Si l'utilisateur tente d'insérer un nombre, le champs ne l'affiche pas. J'ai executé ce code. Mais rien se passe, les lettres rentrent quand même !

  2. #2
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Il y a plusieurs incohérences:
    1) Java ne connaît pas de classe "AbstractFormat". Tu veux dire "AbstractFormatter" ?

    2) Si tel est le cas, la classe AbstractFormatter n'a pas de méthode setMask !

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    AbstractFormat n'existe pas. Je l'ai créé car je veux définir mes propres formats par un masque.

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Personne ne peut me dire d'où viendrait mon erreur ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    J'ai abandonné l'idée.
    Je vais le faire manuellement avec un DocumentListener. Je ferais un setText() dans un invokeLater.

  6. #6
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Ce passage du tuto ne fait pas ce que tu veux ?

    Using MaskFormatter

    The MaskFormatter class implements a formatter that specifies exactly which characters are valid in each position of the field's text. For example, the following code creates a MaskFormatter that lets the user to type a five-digit zip code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            zipField = new JFormattedTextField(
                                createFormatter("#####"));
            ...
            protected MaskFormatter createFormatter(String s) {
                MaskFormatter formatter = null;
                try {
                    formatter = new MaskFormatter(s);
                } catch (java.text.ParseException exc) {
                    System.err.println("formatter is bad: " + exc.getMessage());
                    System.exit(-1);
                }
                return formatter;
            }

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/03/2009, 11h30
  2. JFormattedTextField et masque
    Par iutcien dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/11/2006, 13h41
  3. Réponses: 1
    Dernier message: 20/10/2006, 12h23
  4. [JFormattedTextField] Masque de saisie d'heure
    Par alain57 dans le forum Composants
    Réponses: 8
    Dernier message: 10/08/2005, 11h39
  5. [JFormattedTextField] Utilisation
    Par bartmarley dans le forum Composants
    Réponses: 3
    Dernier message: 28/01/2005, 22h53

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