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

 Java Discussion :

saisie dans JTextField


Sujet :

Java

Vue hybride

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Par défaut saisie dans JTextField
    Bonjours alors tout d'abord, je ne sais pas si ma question concerne vraiment le graphisme. Si je ne post pas au bon endroit je m'excuse d'avance.

    J'ai trouver un petit code sur internet que je comprend bien dans l'ensemble qui permet de limiter le nombre de caractère dans un JTextField, je l'ai modifier pour qu'en plus il interdisse de saisir autre chose qu'une lettre.

    Ce qui donne ceci

    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
     
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.PlainDocument;
    import java.awt.event.*;
     
    public class JTextFieldLimit extends PlainDocument 
    {
     
    	private int limit;
     
    	public JTextFieldLimit(int limit) 
    	{
    		this.limit = limit;
    	}
     
     
     
    	public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException 
    	{
    		if (str == null)
    			return;
     
    		if ((getLength() + str.length()) <= limit && Character.isLetter(str.charAt(0))) 
    		{
    			super.insertString(offset, str, attr);
     
    		}
    	}
    }
    Il fonctionne très bien, mais j'aimerais aussi que si j'entre un nouveau caractère, celui déjà entrer soit automatiquement remplacer par le nouveau pour ne pas avoir besoin d'effacer et retaper. Je sais que c'est la méthode insertUpdate qui permet de faire cela, mais je ne sais pas quoi entrer comme premier paramètre.

    comment fonctionne cette méthode ?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Par défaut
    Bonjour,
    Je ne connais pas insertUpdate mais une autre solution serait de passer par un focusListener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    textField.addFocusListener(new FocusListener() {
     
            @Override
            public void focusGained(FocusEvent e) {
                    textField.setText("");
            }
     
            @Override
            public void focusLost(FocusEvent e) {
            }
        });

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 35
    Par défaut
    Bonjour,

    Tu peu aussi utiliser le "JFormattedTextField" avec un masque:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    try{
      MaskFormatter tel = new MaskFormatter("## ## ## ## ##");
      //Ou encore
      MaskFormatter tel2 = new MaskFormatter("##-##-##-##-##");
      //Vous pouvez ensuite le passer à votre zone de texte
      JFormattedTextField jtf = new JFormattedTextField(tel2);
    }catch(ParseException e){e.printStackTrace();}
    En plus de de choisir ceux qui peu être écrit, il te le met en format.

    # : indique un chiffre ;

    ' : indique un caractère d'échappement ;

    U : indique une lettre (les minuscules sont automatiquement changées en majuscules) ;

    L : indique une lettre (les majuscules sont automatiquement changées en minuscules) ;

    A : indique un chiffre ou une lettre ;

    ? : indique une lettre ;

    * : indique que tous les caractères sont acceptés ;

    H : indique que tous les caractères hexadécimaux sont acceptés (0 à 9, a à f et A à F).
    J'espère que ça peu t'aider.

    Et,
    Bonne chance

Discussions similaires

  1. Saisi des chiffres dans JTEXTFIELD
    Par the watcher dans le forum Composants
    Réponses: 2
    Dernier message: 01/10/2010, 16h57
  2. Récupérer saisie de JTextField pour insérer dans XML
    Par g0g059 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 07/04/2010, 14h16
  3. comment recupere de valeur de saisie dans jtextfield
    Par kanebody dans le forum Composants
    Réponses: 1
    Dernier message: 12/02/2009, 16h10
  4. Limiter la saisie dans un Jtextfield
    Par boudji dans le forum JBuilder
    Réponses: 2
    Dernier message: 20/08/2006, 10h57
  5. Gerer la saisie dans JTextField
    Par d-a-v-e dans le forum Composants
    Réponses: 9
    Dernier message: 29/06/2006, 17h31

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