Validar Datos Java

Este es un tutorial acerca de la validación de datos de entrada en NetBeans. La validación de datos hace referencia a verificar, controlar o filtrar cada una de las entradas de datos que provienen desde el exterior del sistema. Si el dato es correcto, es decir, si es el tipo de dato que espera el sistema, éste lo aceptará. Por el contrario si el dato es incorrecto, es decir, que no es el tipo de dato que se espera, entonces el sistema no lo aceptará.

Para la validación de datos, podemos tomar en cuenta varios aspectos como los siguientes:

  • Verificar que se ingresen la cantidad de datos que espera el sistema: Si el sistema espera que se ingresen tres datos a través de tres JTextField’s, entonces debe verificar que los tres JTextField’s esten llenos(o al menos los datos obligatorios), de lo contrario no aceptará los datos.
  • Controlar la longitud del dato que espera el sistema: Si el sistema espera un dato con una longitud no mayor de 20 caracteres, entonces el sistema debe controlar la longitud de los datos de entrada. Si se intenta ingresar un dato de 21 caracteres, entonces el sistema no debe recibirlo. De esta manera se evita el desbordamiento de datos.
  • Filtrar el tipo de dato que espera el sistema: Si el sistema espera que se ingrese un dato de tipo Int, sólo podrá recibir datos de este tipo. Si se ingresa un dato de cualquier otro tipo, String por ejemplo, entonces el sistema debe filtrarlo para evitar la incompatibilidad de datos.

Bien, pues he creado una aplicación muy sencilla y solo para efectos de demostración, pero que realmente valida los datos de entrada y lo pueden descargar justo acá abajo…

***************** DESCARGAR EJEMPLO *****************

38 pensamientos en “Validar Datos Java

    • Hola! Gracias.. Pues si lo he pensado, sin embargo he estado muy limitado de tiempo ultimamente por mis estudios, pues soy estudiante, de hecho no he publicado nada nuevo debido a lo mismo. Espero tener un poco de tiempo para realizar alguno… Gracias por la visita, por tus comentarios y por aportarme ideas. Gracias!!

  1. excelente aporte man!!!

    La clase esta muy bien hecha y muy bien documentada facil de entender ….Gracias por las ideas.

    Me gustaria poder intercambiar contigo algunos conocimientos ya que yo igual soy estudiante de Ing en Sistemas…de hecho las validaciones las he estado manejando con expresiones regulares y los metodos quedan bastante pequeños.

    En fin gracias por compartir tu codigo con nosotros me ha aclaro dudas que tenia y dado nuevas ideas.

  2. hola soy nuevo en java y tengo un pequeño problema la miss de mi klase me deja realizar un juego del ahorcado y no tengo idea de como realizarlo y una duda mas un mensaje de opciones como (si)/(no) osea k si elejimos si k se salga del programa y no k se quede en el programa espero tu respuesta y la neta esos ejemplos estan super chidos eres un buenaso en programacion eres genial la verdad

    • Hola amigo! Con respecto al juego de ahorcado no se si tienes el tiempo suficiente mientras yo desarrollo la aplicación.. Talvez en un par de días la tenga lista. Ahora mismo no puedo por que tambien soy estudiante y estoy en período de pruebas. Dame un par de días y te paso la aplicación. Con respecto al mensaje, lo que quieres mostrar es un mensaje de confirmación… El código va en el evento ‘ActionPerformed’ del botón ‘Salir’ y sería el siguiente:
      //***********************************************************************************************************
      int respuesta = JOptionPane.showConfirmDialog(rootPane, “¿Esta seguro que desea salir?”,
      “Salir”, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
      if (respuesta == 0) {
      System.exit(0);
      }
      //***********************************************************************************************************

      Pura Vida!!

  3. Tengo algo tal vez les interese o ya lo sepan jajaja es como cambiar la imagen de la tazita de java y poner una imagen en la venta este es el codigoo:
    @Override
    public Image getIconImage(){
    this.setSize(400,400);
    Image retValue = Toolkit.getDefaultToolkit().
    getImage(ClassLoader.getSystemResource(“Recursos/OnLine.png”));
    return retValue;
    }
    el codigo va debajo del constructor espero les sirva

    • Gracias.. Si el botón procesar es representativo ya que no realiza ninguna acción, solamente muestra un mensaje que indica que los datos ingresados son correctos.. Pura Vida!!

  4. Hola. Quisiera que me explicaras en palabras como funciona esta parte del codigo si no es mucha molestia
    “int k = (int) evt.getKeyChar();//k = al valor de la tecla presionada

    if (k >= 97 && k = 65 && k <= 90)
    {//Si el caracter ingresado es una letra
    "
    Quisiera saber exactamente el getkeychar que es lo que realmente recibe en la variable? un numero? un codigo? y segun esto en el condicional porque los valores de 97?122? 65? 90?

    En si una explicacion de esto.

    Muchisisisisisisimas gracias por tu tiempo.

    • Gracias por tu cometario. Primero te explico que “evt” es una variable de tipo “KeyEvent” la cual nos permite manipular todos los eventos relacionados con las teclas y puedes ver la declaración una línea más arriba. Te comento además que cada tecla posee un valor único que la identifica de las demás (es como un código). Lo que hacemos es declarar una variable “k” de tipo entero, que va ser igual a “evt.getKetChar()” lo que nos devuelve el “valor o código” de la tecla presionada, sin embargo devuelve el valor de tipo char, por lo cual aplicamos un cast que es justamente lo que está delante: “(int)”, para evitar la incompatibilidad de tipos.
      Posterior a eso hacemos el if, por cierto la sintaxis correcta es:

      if (k >= 97 && k = 65 && k <= 90)

      Utilizamos esos números porque los valores que se encuentran en ese rango, pertenecen a las teclas alfabéticas, es decir, todas las letras. En palabras sencillas lo que queremos decir es que: si la tecla presionada es una letra, realizamos una determinada acción. En el caso del ejemplo lo que hacemos es borrar la letra escrita y emitir un mensaje de error, ya que solo queremos se ingresen números.

  5. Está bueno el blog, men! Me ha ayudado bastante los ejemplos que ha puesto. Sería bueno que incluyera algo de SQL; ya sea de Oracle o SQLServer. Bueno… sólo es una sugerencia. Pero en serio men, está muy bueno. Me siento orgulloso de ser su compañero. Yeeeeee…!!! Jajaja!!
    “Que humorístico…!!!”

    • Muchas gracias compañero!! No sea tan humoristico… Voy a crear un blog para escribir varas humorísticas jajajajaja!!! Mae un día de estos subo algo ahi de SQL.. Talvez subo el proyecto que le hice a Edwin… jajaja…

      • Jajaja!!! Si! Sería bueno. Y estaría bueno el blog “Humorístico”. Jajaja! La base de datos yo se la pasé a ese men, pero le faltaron algunas varas. Y ahora nos piden unas varas de cursores que la verdad el único cursor que conozco es la flechita de windows Jajaja!!!

      • di mae voy ahi tons ganandome esos 10 rojos… jajajaja 10 por jupa… jajaja ahi está el negocio…

  6. Hola realmente es interesante el codigo, pero tengo una duda como hago para que solo se ingresen 8 numeros, si escribo 2 numeros y luego presione en el boton me salga un mensaje de que solo debe ser de 8 numeros. porque en el KeyTyped me saldria error. te agradeceria tu respuesta saludos….

    • Disculpa por responder tarde. Tenía días de no entrar al blog. Bueno para que en el TextField solo se permita ingresar números y estrictamente solo números (jeje) puedes usar este código en el evento KeyReleased del TextField.


      if(!txtNumeros.getText().matches("[0-9]*")){
      txtNumeros.setText("");
      JOptionPane.showMessageDialog(rootPane, "Solo puede ingresar números.","Validando datos");
      }

      Ahora para que confirmar que se ingresen ocho números en TextField debes agregar algo de código al metodo String ValidarDatos() que está en el ejemplo de este tutorial. (Supongo que lo has descargado…) Con lo cual el metodo quedaria de la siguiente manera:


      public String ValidarDatos() {//Metodo para comprobar que los datos esten completos
      String msj = "";
      if (txtId.getText().equals("")) {//Si txtId esta vacio
      msj += "Por favor digite la identificación. \n";
      }
      if(txtId.getText().length()<8){//Si la longitud del texto es menor a 8
      msj += "Debe digitar 8 numeros en la identificación. \n";
      }
      if (txtNombre.getText().equals("")) {//Si txtNombre esta vacio
      msj += "Por favor digite en nombre. \n";
      }
      return msj;//devuelve msj
      }

  7. Gracias por el codigooo …. ak te dejo uno de mi creación sencillo pero funciona :

    char car = evt.getKeyChar();
    char[] carNo;
    String caracteresNovalidos = “.{}+?¡$#/()”; // Colacas los caracteres que no quieres q se muestren

    for (int i = 0; i < caracteresNovalidos.length(); i++) {

    if (caracteresNovalidos.charAt(i) == car) {
    evt.consume();
    }
    }

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s