gentoo linux, java, software libre y otras hierbas
Ago, 04 2008 - 1:50 pm

Validación de formularios en Java

CódiLa validación de formularios nos permite asegurarnos que los datos que, por ejemplo, un usuario ingrese en un campo de texto sean válidos. Dicha validación puede hacerse una vez que el usuario haya digitado todos los datos, o mientras el usuario los esté digitando.

Para el primer caso, lo mejor es utilizar expresiones regulares usando el método matches() de la clase String (si necesitas un ejemplo, clic aquí).

Para el segundo caso tendremos que manejar los eventos del teclado que se generen sobre determinado control, usando la interfaz KeyAdapter y el método keyReleased. Así, en nuestro código de ejemplo tenemos un JTextField al que le añadimos un Listener que escuchará los eventos del teclado, y verificará si la tecla presionada es un caractér válido (solo letras), de lo contrario lo elimina.

No hay nada especial en el código de ejemplo salvo por un par de líneas:

  • Línea 17: se utiliza el método anidado getToolkit().beep(), que hará que el sistema alerte al usuario con un pitido cada vez que un dato erróneo.
  • Línea 25: comparamos el char que digite el usuario con el entero 8, que es el código resultado al usar el Backspace (tecla para borrar hacia la izquierda); lo cual permite al usuario borrar caracteres.

Código…

import java.awt.Robot;
import javax.swing.*;
import java.awt.event.*;
public class SoloLetras extends JFrame {
	private JTextField caja = new JTextField();
	public SoloLetras() {
		super("Solo dejo escribir letras");
		caja.addKeyListener(new KeyAdapter() {
			public void keyReleased(KeyEvent e) {
				Character caracter = new Character(e.getKeyChar());
				if (!esValido(caracter)) {
					String texto = "";
					for (int i = 0; i < caja.getText().length(); i++)
						if (esValido(new Character(caja.getText().charAt(i))))
							texto += caja.getText().charAt(i);
					caja.setText(texto);
					getToolkit().beep();
				}
			}
			public boolean esValido(Character caracter)
			{
				char c = caracter.charValue();
				if ( !(Character.isLetter(c) //si es letra
						|| c == ' ' //o un espacio
						|| c == 8 //o backspace
					))
					return false;
				else
					return true;
			}
		});
		getContentPane().add(caja);
		setSize(300, 60);
		setVisible(true);
	}
	public static void main(String args[]) {
		JFrame.setDefaultLookAndFeelDecorated(true);
		SoloLetras ventana = new SoloLetras();
		ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

Descargar código fuente

8 Comentarios | deja el tuyo

2 enlaces entrantes

6 Comentarios en “Validación de formularios en Java”

  1. MARINA dice:

    enas, no soy muy experimentada en el tema y me estoy volviendo loca para poner al final de la plantilla un recuadro de comentario (como el que usan ustedes) con el mail obligatorio, logre un formulario de consulta, pero no queda publicado lo que escriben los visitantes. Si alguien me puede ayudar me va a hacer un gran favor!!!

    PD: uso blogger

  2. alan dice:

    me va a servir de mucho en la realizacion de mi proyecto. Gracias

  3. RINCON dice:

    me va a servir vastante gracias

  4. DIEGO ARMANDO dice:

    BUENAS NOCHES PRIMERAMENTE AGRADESCO ALOS BLOG QUE SIEMPRE PARAN COMPARTIENDO IDEAS Y SOLUCIONES QUE DERREPENTE MUCHOS NO HALLAN COMO POR EJEMPLO YO SOY UN ESTUDIANDO DE IDAT DE 5TO CICLO Y ESTOY EMPEZANDO A LLEVAR JAVA AVANZADO Y BUENO ME PARECE INTERESANTE PERO ES ALGO COMPLEJO ESPERO QUE EN EL TRANSCURSO DE LAS CLASES VAYA APRENDIENDO . Y CON EZFUERZO SE QUE LO VOY A LOGRAR SALUDOS A TODOS LOS Q TRATAN DE SALIR ADELANTE GRACIAZ ATENTAMENTE DIEGO MAS CONOCIDO COMO EL LOBITO =) …HASTA PRONTO

  5. Juan Carlos dice:

    buenas necesito ayuda empiezo a dar mis primeros pasos en java y netbenas y necesito saber como validar formularios web con un control que se llama page alert o el control alert por el momento la validacion lo he conseguido con el control message gracias por tu uyuda

¡Déjanos tu comentario!