lunes, 7 de marzo de 2011

Validar campo tecla digitada en un JTexField

Con este metodo puede validar cada tecla digitada en una caja de texto, para este caso se valida que solo se puedan digitar numeros, si se presiona una letra no la deja escribir, a su vez en este metodo podemos modificarlo para que se puedan validar mas cosas, esta modificacion va en la condicion if, donde podemos validar con el codigo ASCII, el metodo codePointAt() de un String saca ese codigo ASCII y validamos los caracteres que queramos. Este metodo debemos ponerlo en un evento KeyReleased del JTexField, en Netbeans en modo grafico le damos clic derecho a la caja de texto, eventos, key y KeyReleased.


private void metodoKeyReleased(java.awt.event.KeyEvent evt) {
javax.swing.JTextField objJTF = (javax.swing.JTextField)evt.getSource();
String texto = objJTF.getText();
char[] fuente = texto.toCharArray();
char[] resultado = new char[fuente.length];
int j = 0;
boolean error = false;
for (int i = 0; i < fuente.lenght; i++) {

if (fuente[i] >= '0' && fuente[i] <= '9')

resultado[j++] = fuente[i];
else {
error = true;
java.awt.Toolkit.getDefaultToolkit().beep();
}
}
if ( error )
objJTF.setText(new String(resultado, 0, j));
}

4 comentarios:

  1. Fue muy útil este post, solo me falta verificar algunos caracteres especiales como Ñ, muchas gracias.

    ResponderEliminar
  2. Si necesitas algo de ayuda en otras cosas y puedo hacerlo te podria colaborar

    ResponderEliminar
  3. estoy haciendo un formulario de ingreso de datos y deseo poner dentro del cuadro de texto Nombre la palabra "Nombre" y que desaparezca al dar clic en el mismo para introducir texto. ¿Qué propiedad del control incluye esta característica?

    ResponderEliminar
  4. < input type="text" name="nombre" value="Nombre" onFocus="if (this.value=='Nombre') this.value='';">

    ResponderEliminar