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.
Existe una forma de aplicarlo a un Jtable?
puedes leerlo en un jtextfield e imprimirlo en un jtable
No me funciono
Genial aporte compañero, solo tengo una duda, espero que me puedas ayudar a resolverlo, necesito que acepte caracteres numéricos, letras y caracteres especiales.
Me podrías asesorar
me sale con error
como puedo hacer la validacion desde una clase, osea crear una clase llamada validacion y llamar desde el Jframe y que valida la entrada de textField
Saludos
como puedo hacer la validacion de una curp solo quiero que acepte el formato de 18 digitos y que cumpla con el formato de 4 letras, 6 numeros, 6 letras y 2 numeros
puedes utilizar expresiones regulares
https://vidadigital.com.mx/es/expresiones/regulares/curp/
Tu caso requiere el uso de un objeto mas especializado de java llamado jFormattedTextfield. revisalo tiene un sin fin de posibilidades que es estan mas alla de un simple jTextField. Saludos
me sirvio de mucho gracias
Hola estoy trabajando en un pequeña aplicación y tengo una duda como hago que un campo jtextfield cache los daros de un codigo de un lector de codigo de barra. la verdad me urge
Hola, para permitir solo numeros, coma y punto :
1) En NetBeans : Boton derecho sobre la caja de texto (en este ejemplo de nombre txtNumero), luego
Events >Keys > KeyTyped, se agregará el codigo y luego adicionas:
char car = evt.getKeyChar();
if((car’9′)&& (car!=’.’) && (car!=’,’ )) evt.consume();
Finalmente queda asi:
private void txtNumeroKeyTyped(java.awt.event.KeyEvent evt) {
// valida input de solo numeros punto y coma
char car = evt.getKeyChar();
v if((car’9′)&& (car!=’.’) && (car!=’,’ )) evt.consume();
}
Hola, para permitir solo numeros, coma y punto :
1) En NetBeans : Boton derecho sobre la caja de texto (en este ejemplo de nombre txtNumero), luego
Events >Keys > KeyTyped, se agregará el codigo y luego adicionas:
char car = evt.getKeyChar();
if((car’9′)&& (car!=’.’) && (car!=’,’ )) evt.consume();
Finalmente queda asi:
private void txtNumeroKeyTyped(java.awt.event.KeyEvent evt) {
char car = evt.getKeyChar();
if((car’9′)&& (car!=’.’) && (car!=’,’ )) evt.consume();
}
amigos una enorme duda con respecto a este tema, quiero imprimir en un simple System.out.println el numero que haya ingresado mi usuario en mi textfield, hasta aqui funciona bien(1), pero tambien quiero que me muestre el valor del textfield y aqui si no me funciona, me muestra de inicio un mensaje en blanco y posteriormente un numero anterior al que voy escribiendo (2), gracias por su valiosa ayuda:
private void txtNumeroKeyTyped(java.awt.event.KeyEvent evt) {
int valor=0;
char car = evt.getKeyChar();
if((car’9′))
evt.consume();
else
valor = Integer.valueOf(String.valueOf(car));
System.out.println(«Ultimo valor escrito: «+valor); //(1) esta linea si funciona
System.out.println(«Valor del TextField «+txtNumero.getText()); //(2) esta linea no funciona
}
Genial. Gracias por tu ayuda
pero un numero no puede tener 2 puntos, seria un numero invalido como evito los 2 puntos