Set Limit of a certain number in a jtextbox in java

2

I want to place a limit of 10 in a jtextbox in java but what I get is to have a limit of 19, I ask for the first position of my chain, if this is 1 I grant a limit of 2 allowing me to place another number for place the 0 and thus get the 10 but I do not know how to limit the user to only place the 0. Here I leave the code

 private void NumeroDeIncognitasKeyTyped(java.awt.event.KeyEvent evt) {                                            

    char caracter = evt.getKeyChar();
    int limite;
    String cadena = NumeroDeIncognitas.getText() + caracter;
    if ((cadena.charAt(0) == '1')) {
        limite = 2;
    } else {
        limite = 1;
    }
    if (NumeroDeIncognitas.getText().length() == limite) {
        evt.consume();
    }
    if (cadena.charAt(0) == ',') {
        evt.consume();
    } else {
        if (((caracter < '0') || (caracter > '9')) && (caracter != KeyEvent.VK_BACK_SPACE)) {
            evt.consume();
        }
    }
} 
    
asked by Efrainrodc 21.01.2017 в 03:17
source

1 answer

1

The solution is to validate the length of the field Number of Incognitas and when it has the length 1 and the limit is 2 will then validate that something other than 0 is not written

    char caracter = evt.getKeyChar();
    int limite;
    String cadena = NumeroDeIncognitas.getText() + caracter;

    if ((cadena.charAt(0) == '1')) {
        limite = 2;
    } else {
        limite = 1;
    }

    if (NumeroDeIncognitas.getText().length() == limite) {
        evt.consume();
    }

    if (cadena.charAt(0) == ',') {
        evt.consume();
    } else {

     /* Validacion del numero 10*/

        if (limite == 2 && NumeroDeIncognitas.getText().length() == 1) {
            if (caracter != '0') {
                evt.consume();
            }
        }

     /***************************/

        if (((caracter < '0') || (caracter > '9')) && (caracter != KeyEvent.VK_BACK_SPACE)) {
            evt.consume();
        }

    }
    
answered by 21.01.2017 / 03:39
source