Contôle de saisie textfieled (java)

asma assouma Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
UaLShark Messages postés 193 Statut Membre -
Bonjour à tous, je travail sur netbeans je besoin de faire un contrôle de saisie sur une zone textfieled n'accepte que de nombre

1 réponse

  1. UaLShark Messages postés 193 Statut Membre 35
     
    Bonjour,
    Vous pouvez utiliser la classe InputVerifier de cette maniere:

    public class NumericVerifier extends InputVerifier
    {....
    .....
    @Override
    public boolean verify(JComponent srcComponent)
    {
    JTextField tmpField = (JTextField)srcComponent;
    boolean inputOk ;
    if(tmpField.getText().length()==0)
    return true;
    String txt = this.cleanText(tmpField.getText());
    if(! (inputOk = checkNumericText(txt)))
    return false;
    this.formatText(txt);
    return (inputOk && this.checkCustomConstraints(txt));
    }
    ....
    ....
    private boolean checkNumericText(String txt)
    {
    int nbDecimalDot = 0;
    for(int i=0;i<txt.length();i++)
    {
    char c= txt.charAt(i);
    if((c<'0') || (c>'9'))
    {
    if(c=='.')
    {
    if(this.fixedDecimalDigits==0)
    return false;
    nbDecimalDot++;
    if (nbDecimalDot>1)
    return false;
    }
    else
    {
    if((c=='-' || c=='+'))
    {
    if(i != 0)
    return false;
    }
    else
    return false;
    }

    }
    }
    return true;
    }
    ....
    //Definissez ici vos contraintes specifiques
    private boolean checkCustomConstraints(String txt)
    {
    .....
    }
    }

    Finalement
    Le Jtextfield en question :
    JTextField.setInputVerifier(new NumericVerifier ());
    0