Establecer Limite de una cifra determinada en un jtextbox en java

publicado por: Anonymous

Quiero colocar un limite de 10 en un jtextbox en java pero lo que consigo es tener un limite de 19, yo pregunto por la primera posición de mi cadena, si esta es 1 le otorgo un limite de 2 permitiéndome colocar otra cifra para colocar el 0 y así obtener el 10 pero no se como limitar al usuario a que este coloque solo el 0.
Aquí dejo el código

 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();
        }
    }
} 

solución

La solucion es que realices la validacion de la longitud del campo NumeroDeIncognitas y cuando este tenga la longitud 1 y el limite sea 2 entonces validara que no se escriba algo distinto a 0

    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();
        }

    }
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *