Validar ingreso de caracteres en un JTextField - JAVA
En ocasiones nuestros programas requieren realizar validaciónes al momento de
ingresar datos, a veces se necesita que solo se ingresen números
y no se permita o se inhabilite los demas caracteres para determinados campos,
también podría ser viceversa, es decir que solo se permita el ingreso de caracteres
alfabeticos y bloquear los caracteres numéricos.
A continuación se explica como realizar este proceso en el NetBeans
1. Seleccionar JTexField y asignar evento.
Lo primero que se debe hacer es seleccionar el campo de texto al cual se le desea establecer el limite de caracteres, luego dar clic derecho, seleccionar Events - Key - KeyTyped como se indica en la imagen.
Tan pronto se realice el proceso anterior se genera el código del evento como se muestra en la siguiente imagen
2. Ingresar la condición para limitar el número de caracteres digitados.
En este apartado vamos a agregar el código con la condición. Lo puedes copiar y pegar.
private void txtCelularKeyTyped(java.awt.event.KeyEvent evt) {
if(txtCelular.getText().length() >= 10)
{
evt.consume();
}
}
3. Ingresar la condición para permitir solo números
En este apartado se agrega el código con la codición para que solo admita caracteres numéricos. Se observa en la condición que a la variable booleana numeros se le asigna el rango de caractares que se reciben, de acuerdo a los códigos de la tabla ASCII.
private void txtCelularKeyTyped(java.awt.event.KeyEvent evt) {
int key = evt.getKeyChar();
boolean numeros = key >= 48 && key <= 57;
if (!numeros)
{
evt.consume();
}
if (txtTelefonoCliente.getText().trim().length() == 10) {
evt.consume();
}
}
4. Ingresar la condición para permitir solo caracteres alfabéticos
En este apartado se agrega el código con la codición para que solo admita caracteres alfabéticos. Se observa en la condición que a la variable booleana numeros se le asigna el rango de caractares que se reciben, de acuerdo a los códigos de la tabla ASCII.
private void txtCelularKeyTyped(java.awt.event.KeyEvent evt) {
int key = evt.getKeyChar();
boolean mayusculas = key >= 65 && key <= 90;
boolean minusculas = key >= 97 && key <= 122;
boolean espacio = key == 32;
if (!(minusculas || mayusculas || espacio))
{
evt.consume();
}
}
Si aún hay dudas del proceso, en el siguiente video también se explica