Seguramente alguna vez te haz encontrado con la necesidad de validar la entrada de datos en algún campo de texto JTextField, por ejemplo que el usuario solo pueda ingresar números dentro del JTextField.
Pues bien conociendo las propiedades adecuadas es posible ajustar las validaciones necesarias para cada tipo de entrada, por ejemplo que acepte solo números, letras, puntos etc.
En este caso la validación será para que el JTextField acepte sólo números
Como ejemplo para este caso usamos un JTexField que solo debe permitir que se ingrese números desde el 0 al 9. Tenemos que editar el evento KeyTyped del JTextfield como se muestra en la imagen, para aceder a ella hacemos clic derecho sobre el jTextfield y seleccionamos Events –> Key –> KeyTyped.
Dentro del evento KeyTyped escribimos el siguiente código
char car = evt.getKeyChar(); if((car<'0' || car>'9')) evt.consume();
El código completo quedaría de esta forma
private void txtNumeroKeyTyped(java.awt.event.KeyEvent evt) { char car = evt.getKeyChar(); if((car<'0' || car>'9') && (car<',' || car>'.')) evt.consume(); }
En el caso de que querramos que el campo de texto soporte números y comas para uso con monedas o puntos decimales el código sería el siguiente.
char car = evt.getKeyChar(); if((car<'0' || car>'9') & (car<'.') || car>'.') evt.consume();
Esto nos permitirá introducir caracteres numéricos con puntos o comas EJ. 1,000.52.
Cada vez que el usuario presione una tecla, se generará este evento y lo que hacemos es sacar el carácter que presiono el usuario que se almacena en la variable evt. Luego, en un simple if decimos: si el carácter no esta entre 0 y 9 lo desechamos . Y de esta manera logramos que el JTextField acepte sólo números.