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 :

[JTextField] Limiter le nombre de caractères


Sujet :

Composants Java

  1. #1
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut [JTextField] Limiter le nombre de caractères
    salu tout le monde
    comment je peux fixer le nombre de caracteres tappés dans un JTexetField à par exemple 4 c'est à dire aprés le 4 caractere l'utilisateur ne peut plus ecrire dans JTextField meme s'il tappe un caractere

    NB: je veux utiliser JTextField et pas JFormattedTextField

    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu dois probablement y arriver en lui passant un document (textfield.setDocument()) étendant PlainDocument et dans lequel tu surcharge les méthodes insert/update et remove pour faire ton comptage. Un exemple simpliste ici: http://www.java-tips.org/java-se-tip...-length-3.html

  3. #3
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Il ne serait pas plus simple de passer par un JFormatedTextfield?
    la tu pourrais prédefinir le nombre de caracteres ainsi que les caracteres accepte
    une fois le mask bien fait il acceptera rien d'autre ^^
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  4. #4
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    en 2sec et demi sur google : "JTextField + limiter" voici ce qu'on obtient :

    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
     
    import java.awt.Toolkit;
     
    import javax.swing.JTextField;
    import javax.swing.text.AbstractDocument;
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.DocumentFilter;
     
    /**
    * TextField that can be limited in size (max number of characters typed in)
    * @author oma
    *
    */
    public class LimitedTextField extends JTextField {
     
    public LimitedTextField(int maxLength)
    {
    super();
    AbstractDocument doc = (AbstractDocument) getDocument();
    doc.setDocumentFilter(new TextLimiter(maxLength));
    }
     
    /**
    * Text limiter used to limit the number of characters of text fields
    * Should be used this way :
    *
    * AbstractDocument doc = (AbstractDocument) myTextComponent.getDocument();
    doc.setDocumentFilter(new TextLimiter(maxLength));
    *
    * @author oma
    *
    */
    private class TextLimiter extends DocumentFilter {
    private int max;
     
    public TextLimiter(int max) {
    this.max = max;
    }
     
    public void insertString(DocumentFilter.FilterBypass fb, int offset, String str, AttributeSet attr) throws BadLocationException {
     
    replace(fb, offset, 0, str, attr);
    }
     
    public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String str, AttributeSet attrs) throws BadLocationException {
    int newLength = fb.getDocument().getLength() - length + str.length();
     
    if (newLength <= max) {
    fb.replace(offset, length, str, attrs);
    } else {
    Toolkit.getDefaultToolkit().beep();
    }
    }
    }
     
    }
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

Discussions similaires

  1. Limiter le nombre de caractères d'un JTextField
    Par nabil123456 dans le forum Composants
    Réponses: 0
    Dernier message: 04/05/2015, 10h57
  2. [JTextField]Limiter le nombre de caractères admis
    Par thierrykammi dans le forum Composants
    Réponses: 4
    Dernier message: 13/10/2008, 18h04
  3. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  4. [JTextField] Limiter le nombre de caractères
    Par Sweet2002 dans le forum Composants
    Réponses: 7
    Dernier message: 12/05/2005, 14h29
  5. [JTextField] Limiter le nombre de caractères
    Par thomas_strass dans le forum Composants
    Réponses: 2
    Dernier message: 08/09/2004, 14h06

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