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] Comment Limiter le nombre de caracteres tapés dans un jTextfield ?


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Points : 67
    Points
    67
    Par défaut [JTextfield] Comment Limiter le nombre de caracteres tapés dans un jTextfield ?
    salut,

    voilà tout est dans le titre : étant donne un jtextfield comment accepter les caracteres saisis un a un tant que la un certain nombre max n'est pas atteint, si c'est le cas alors l'utilisateur ne pourra plus saisir mais il peut quand même effacer ou autres.

    merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    En supposant que tu es au moins en Java 1.4, regarde JFormattedTextField.
    Sinon, à voir DocumentListener et le faire à la mano ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Points : 67
    Points
    67
    Par défaut
    j'utilise java1.5 en effet , et je dispose de jtextfield pas de jformattedTextfield pour ce cas , as tu une idee comment impelmenter ca ?
    merci

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Euh.. Comment ça tu n'as pas JFormattedTextField ?
    Sinon, pour implémenter cela à la main, il faut mettre un DocumentFilter (et non Listener comme j'avais écrit précédemment dsl) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    monTextField.getDocument().setDocumentFilter(new DocumentFilter(){
    ...
    });
    et dans les méthodes insertString et replace tu vérifies la longueur ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Points : 67
    Points
    67
    Par défaut
    ce n'est pas que je ne l'ai pas mais je ne dois pas l'utiliser ( exigence )
    je vais essayer ton code
    merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Points : 67
    Points
    67
    Par défaut
    euh! au fait comment preciser dans le documentfilter la longeueur en caractere de mon texte saisi ?

  7. #7
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    monTextField.getText().length()

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2006
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Salut,

    Je pense que la methode la plus simple pour limiter à un nombre de caractere la saisie est de définir une classe héritant de PlainDocument.

    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
     
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
     
    public class testDocument extends javax.swing.text.PlainDocument {
     
        private javax.swing.JTextField p_componentReference=null;
        private int p_max=30;
     
        public testDocument(javax.swing.JTextField a,int max) {
            p_componentReference=a;
            p_max=max;
        }
     
        public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
            int longTotale = str.length()+p_componentReference.getText().length();
            if (p_max<=longTotale)
            {
                super.insertString(offs, str, a);
            }
        }
     
    }
    Du coup ensuite :
    monJTextField.setDocument(new testDocument(monJTextField,15));
    Pour limiter la saisie à 15 caractères.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/10/2007, 14h58
  2. [JTextField]Limiter le nombre de caractères
    Par Rukawa dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/06/2006, 23h22
  3. Réponses: 1
    Dernier message: 20/04/2006, 20h29
  4. Comment modifier le nombre de caractere max d'un textearea?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 12/09/2005, 11h06

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