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 taille et nombre de caractères


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut JTextField taille et nombre de caractères
    Bonjour à tous

    Je voudrais limiter le nombre de caractères que je peux rentrer dans un JTextField, il faut que je fasse comment ?

    Exemple,

    j'ai besoin de rentrer un numéro de secu dans mon JTextField, et pour être sûr de ne pas oublier de chiffre je voudrais qu'une fois le bon nombre de caractères rentrés on ne puisse plus en ajouter.

    et pour que cela se voit, j'aimerais bien aussi que la taille de mon JTF corresponde à ce nombre de caractère, car setColumns n'a pas l'air de faire ça....

    J'aimerais beaucoup aussi que lorsque j'ai fini de remplir tous mes caractères, cela génère un KeyEvent comme si j'avais appuyé sur TAB, de manière à passer au champ suivant

    Une idée ?


    merci et bonne journée.

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2009
    Messages : 138
    Par défaut
    tu peux jeter un coup d'oeil par ici

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 31
    Par défaut
    Le plus simple pour limiter la longueur du texte saisi, c'est à mon avis d'ajouter un KeyListener qui regarde si le texte tapé dépasse la taille limite que tu veux imposer à ton JTF...

    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
    import java.awt.BorderLayout;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
     
    import javax.swing.JFrame;
    import javax.swing.JTextField;
    import javax.swing.text.BadLocationException;
     
    public class Test extends JFrame{
     
    	static Integer _tailleLimite = 10;
     
    	public Test() {
    		super();
    		this.setSize(200, 200);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		final JTextField tf = new JTextField();
     
    		// ajout du KeyListener
    		tf.addKeyListener(new KeyListener() {
     
    			@Override
    			public void keyPressed(KeyEvent e) {}
     
    			@Override
    			public void keyReleased(KeyEvent e) {}
     
    			@Override
    			public void keyTyped(KeyEvent e) {
    				// là tu gères ton action dès que t'atteinds la taille limite
    				if(tf.getText().length() >= _tailleLimite) {
    					System.out.println("limite atteinte");
    					try {
    						tf.setText(tf.getText(0, _tailleLimite));
    					} catch (BadLocationException ble) { ble.printStackTrace(); }
    				}
    			}
    		});
     
    		getContentPane().add(tf, BorderLayout.NORTH);
    		this.setVisible(true);
    	}
     
     
    	public static void main(String[] args) {
    		new Test();
    	}

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Oui, ça m'a l'air très bien !!

    Je vais voir ça tout de suite , merci $eal20.

    Merci aussi à bého32, je vais aussi regarder ce que tu proposes je reposte pour vous dire.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    ok, tout cela était assez intéressant, mais il y avait quand même des trucs un peu ...

    Enfin, j'ai fait un truc à ma sauce, voilà pour les suivants :

    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
    private JPanel creerChampTexte(final int taille) {
    		jtfs.getLast().addKeyListener(new KeyListener() {
     
    			public void keyPressed(KeyEvent e) {}
     
    			public void keyReleased(KeyEvent e) {}
     
    			public void keyTyped(KeyEvent e) {
    				// là tu gères ton action dès que t'atteinds la taille limite
    				if(jtfs.getLast().getText().length() >= taille) {
    					jtfs.getLast().setFocusable(false);
    					jtfs.getLast().setFocusable(true);
     
    				}
    			}
    		});
     
    		jtfs.getLast().setColumns(taille);
    		return creerChampTexte();
    	}
    jtfs est une LinkedList<JTextField>
    la petite astuce du focusable, je a trouve énorme
    MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTextField]Limiter le nombre de caractères admis
    Par thierrykammi dans le forum Composants
    Réponses: 4
    Dernier message: 13/10/2008, 18h04
  2. [JTextField] Limiter le nombre de caractères
    Par sky88 dans le forum Composants
    Réponses: 3
    Dernier message: 17/07/2008, 09h45
  3. Définir le nombre de caractères max d'un JTextField
    Par mitje dans le forum Composants
    Réponses: 4
    Dernier message: 20/01/2006, 16h48
  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