En este grupo En todos

Foro de Java



Como restringir los caracteres que escribes en un jTextField

Kimandy
Ingenieria en ciencias informáticas un...
Escrito por Kimandy Diaz Hernandez
el 10/02/2018

Hola a todos, he estado mirando algunos de los debates y muchos preguntan como hecer que un jTextField solo me permita escribir números, otros solo letras, otros números y letras, en fin, aqui les mostraré un breve resumen de como hacer algunas de estas cosas.

PD: Todos estos códigos se implementan en el evento KeyTyped de nuestro jTextField .

Antes de empesar una aclaración: algunos de estos códigos pueden aparecer en las respuestas de otros compañeros y algunos son mios, como les dije antes, es un "RESUMEN" de algunas de sus preguntas.

Ahora si empesemos:

1-Solo letras y espacios en blanco:

Int code = (int) evt. GetKeyChar();
if (code >= 65 && code <= 90 || code >= 97 && code <= 122 || code == 8 || code == 32 || code == 241) {
} else {
evt. Consume();
getToolkit(). Beep();
}

// FIN

Si no quieren que existan espacios en blanco solo quitamos lo que dice: " || code == 32 "

2- Solo números:

Int code = (int) evt. GetKeyChar();
if (code >= 48 && code <= 57 || code == 8) {

} else {
evt. Consume();
getToolkit(). Beep();
}

//FIN

Aqui no permite espacios en blanco, si queremos permitirlo solo agregamos:" || code == 32" al " if "

Si queremos establecerle un limite de numeros a escribir, por ejemplo, hasta 11 digitos, agregamos un nuevo " if ", de esta forma:

If (Nombre_jTextField. GetText(). Length() == 11 && code! = 8) {
evt. Consume();
getToolkit(). Beep();
}

//FIN

Este " if " sirve para limitar la longitud del texto en cualquier jTextField

3-Números y letras

Int code = (int) evt. GetKeyChar();
if (code >= 65 && code <= 90 || code >= 97 && code <= 122 || code == 8 || code == 32 || code == 241 || code >= 48 && code <= 57) {
} else {
evt. Consume();
getToolkit(). Beep();
}

// FIN

Estos son los principales, ahora para los caracteres especiales solo necesitamos saber el valor o el codigo del caracter, para saber esto solo escribimos dentro del evento KeyTyped de un jTextField de prueba:

Int code = (int) evt. GetKeyChar();

System.out.println(code);

//FIN

Y asi sabremos cual es el valor del caracter o la tecla presionada, y solo tenemos que agregarlo al " if "

Ejemplo: Si queremos que nuestro jTextField solo lea números y el el sinbolo de " + ".

Solo tenemos que agregar a nuestr " if " el siguiente fragmento: " || code == 43 " quedando asi:

Int code = (int) evt. GetKeyChar();
if (code >= 48 && code <= 57 || code == 8|| code == 43) {

} else {
evt. Consume();
getToolkit(). Beep();
}

//FIN

Estos son ejemplos sencillos, espero les siva, saludos