Foros del Web » Programación para mayores de 30 ;) » Java »

Validar datos en java

Estas en el tema de Validar datos en java en el foro de Java en Foros del Web. Necesito validar los datos entrados en un TextField, y decir si son numeros o caracteres o una combinacion de ambos. Como lo puedo hacer?...
  #1 (permalink)  
Antiguo 18/06/2003, 10:35
 
Fecha de Ingreso: enero-2002
Mensajes: 124
Antigüedad: 22 años, 3 meses
Puntos: 0
Validar datos en java

Necesito validar los datos entrados en un TextField, y decir si son numeros o caracteres o una combinacion de ambos.

Como lo puedo hacer?
  #2 (permalink)  
Antiguo 19/06/2003, 08:41
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola cadapo!!!

Puedes hacer lo siguiente:
Código PHP:
        String cadena campo.getText(); //recoges el contenido del campo
        
boolean algunDigito false;
        
boolean algunaLetra false;
        for (
int i 0cadena.length(); i++) {
            if (
Character.isDigit(cadena.charAt(i))) {
                
//es un digito
                
algunDigito true;
            } else {
                
algunaLetra true;
                
//no es un digito
            
}
        }
        if(
algunDigito && !algunaLetra){
            
System.out.println("TODO DIGITOS");
        }else if (
algunDigito){
            
System.out.println("ALFNUMERICOS");
        }else{
            
System.out.println("TODO LETRAS");
        } 
Espero te sirva,
un saludo
kripton
  #3 (permalink)  
Antiguo 19/06/2003, 15:59
 
Fecha de Ingreso: enero-2002
Mensajes: 124
Antigüedad: 22 años, 3 meses
Puntos: 0
Sonrisa Muchas Gracias kripton !!!!!!!

Te agradezco la ayuda kripton

  #4 (permalink)  
Antiguo 12/09/2008, 08:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Validar datos en java

Por favor diganme como validar datos en java???? Soy principiante necesito ayuda!!!!
  #5 (permalink)  
Antiguo 12/09/2008, 12:46
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Validar datos en java

tambien puedes poner esto en el evento keyTyped del JTextfields

controlar que solo se puedan ingresar numeros:

Código:
private void txtCiEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {
        int k = (int) evt.getKeyChar();
        if (k >= 97 && k <= 122 || k >= 65 && k <= 90) {
            evt.setKeyChar((char) KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null, "No puede ingresar letras!!!", "Ventana Error Datos", JOptionPane.ERROR_MESSAGE);
        }
        if (k == 241 || k == 209) {
            evt.setKeyChar((char) KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null, "No puede ingresar letras!!!", "Ventana Error Datos", JOptionPane.ERROR_MESSAGE);
        }
        if (k == 10) {
           //transfiere el foco si presionas enter
            txtCiEmpleado.transferFocus();
        }
    }
controlar que solo se puedan ingresar letras:

Código:
    private void txtNombreEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {
        int k = (int) evt.getKeyChar();
        if (k > 47 && k < 58) {
            evt.setKeyChar((char) KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null, "No puede ingresar numeros!!!", "Ventana Error Datos", JOptionPane.ERROR_MESSAGE);
        }
        if (k == 10) {
            txtNombreEmpleado.transferFocus();
        }
    }
saludos y cuidate
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #6 (permalink)  
Antiguo 21/06/2010, 13:58
 
Fecha de Ingreso: abril-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Respuesta: Validar datos en java

Bien solo escribo esto para decirles que el codigo de kriptop es correcto y funcion a PERO solo una vez . es decir si mandas un valor `por parametro mas de una ves ya no anda- la solucion esta aca -


Código:
 boolean algunDigito = false;
 boolean algunaLetra = false;

   public void ComprovarTipoDeCadena(String cadena){
      {  
          for (int i = 0; i < cadena.length(); i++)
            if (Character.isDigit(cadena.charAt(i))) {
               
                algunDigito = true;
            } else {
                algunaLetra = true;
            }
        }
        if(algunDigito && !algunaLetra){
            System.out.println("TODO DIGITOS");
            algunDigito=false;
            algunaLetra=false;
        }else if (algunDigito && algunaLetra){
            System.out.println("Aca tenemos numeros y letras");
            algunDigito=false;
            algunaLetra=false;
            
        }else if(algunaLetra ){
        System.out.println("Solamente letras");
            algunDigito=false;
            algunaLetra=false; 
        }
    }

Se los esplico primero ven que despues de que enpieza un ciclo if . para determinar que clas de cadena es. AL finalizar la misma reinicio el valor de las variables booleana.s

Código:
boolean algunDigito = false;
 boolean algunaLetra = false;
con esto se corrige el error al llamarlo varias veces.
GRacias ermano por t codigo ahora lo pulli y perfecto. :)
  #7 (permalink)  
Antiguo 21/06/2010, 14:32
 
Fecha de Ingreso: abril-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Respuesta: Validar datos en java

djagu_26 Tu respuesta esta muy buena pero sabes si puedo crear un metodo. para que me controle lo que tipeo es decir para no escribirlo tantas veces. pues ya sabes eso lo tengo que escribir de acuerdo a ala cantidad de campos que quiero validar ejm en un form tengo 4 campos y tengo que escribir eso 4 veces-. se podria capturar lo que se escribe en un metodo? solamente llamo a ese metodo en el evnto KeyTyped


pues como te fijas - en mi respuesta anterior alli creee un metodo. que em contola el tipo de cadena. este metodo lo llamo en el lostfocus. , tambien le paso los parametro antes de llamarlo y funciona perfecto. pero no puedo haver un metodo que controle mientras escribo como el tuyo?
  #8 (permalink)  
Antiguo 22/06/2010, 07:25
 
Fecha de Ingreso: marzo-2009
Ubicación: Santa Marta
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Validar datos en java

hola vmkurz, tu codigo esta bn solo que creo que quedaria un poco mejor si los estructuras de la sgte manera...


public void comprobarTipoDeCadena(String cadena){
{
boolean algunDigito = false;
boolean algunaLetra = false;
for (int i = 0; i < cadena.length(); i++)
if (Character.isDigit(cadena.charAt(i))) {

algunDigito = true;
} else {
algunaLetra = true;
}
}
if(algunDigito && !algunaLetra){
System.out.println("TODO DIGITOS");

}else if (algunDigito && algunaLetra){
System.out.println("Aca tenemos numeros y letras");


}else if(algunaLetra ){
System.out.println("Solamente letras");
}
}
  #9 (permalink)  
Antiguo 22/06/2010, 08:16
 
Fecha de Ingreso: abril-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Sonrisa Respuesta: Validar datos en java

Bien Gracias Man. pero si no reinicias el valor de las variables booleanas. toma por defecto el anterior.valor esto es un problema si usas el metodo varias veces. ejem.

al utilizar o llamar este proceso desde un formulario o otro clase produce error. cual es.

SI Tienes solo letras entonces pues. Algunaletra=true;
si tienes solodigitos AlgunDigito=true;
si tienes ambos numeros y letras ambos true,
Ok cual es el problema

al usar este metodo en el evento KeyRelease de un jframe. ocurre lo siguente.
Escribes numeros retorna solodigitos true, despues escribes letras retorna ambos true. PERO si borras las letras y escribes solo numeros y vuelves a llamar al metodo sin reiniciar las variables. retorna anbos true por ams de que la cadena ya no tiene letras. Es decirt se queda en el buffer de emoria. hehe. eso es todo solo por eso reiniciio mis variables booleanas. Bien aca les dejo la aplicacion de este codigo en un jframe. AH publico las variables booleanas de tipo public para ser accesible desde todos los metodos de la clase-

Código:
  public   boolean algunDigito = false;
  public    boolean algunaLetra = false;

Código:
public void ComprovarTipoDeCadena(String cadena){
      {  
        for (int i = 0; i < cadena.length(); i++)
            if (Character.isDigit(cadena.charAt(i))) {
                algunDigito = true;
            } else {
                algunaLetra = true;
            }
        }
        if(algunDigito && !algunaLetra){
            System.out.println("TODO DIGITOS no lostfocus");
           ReiniciarBooleanas();
            retornar=1;
        }else if (algunDigito && algunaLetra){
            System.out.println("Aca tenemos numeros y letras");
            retornar=2;
            ReiniciarBooleanas();
        }else if(algunaLetra ){
        System.out.println("Solamente letras");
        retornar=3;
        ReiniciarBooleanas();
        }
    }

      public void ReiniciarBooleanas(){
      algunDigito=false;
      algunaLetra=false;
    }
Esta es mi clase validar. ahora lo implemento asi desde mi jframe.
Construi este emtodo que envia los aprametros a la clase validar. que controla el tipo de cadena.


Código:
public void Verificar() {
            VAL.ComprovarTipoDeCadena(cadena);
               if(VAL.retornar==55){
               mensajeplano.setText("No se admiten Numeros");
               this.mensajeplano.setVisible(true);Agoo visisble un jlabel en panatalla
               }else{
               this.mensajeplano.setVisible(false);
              }
              VAL.ValidarNumero(cadena);//Estees otro metodo deqe llamo. tambien esta en la clase Validador pero esste controla la longitud de la cadena.
               if (VAL.retornar==77){
               mensajeplano2.setText("Este campo no puede tener mas de 40 Letras");
               this.mensajeplano2.setVisible(true);
               }else{
               this.mensajeplano2.setVisible(false);
               } 
}
Ahora desde el proceso keyreleased. llamo a este emtodo y le digo que cadena va a controlar o pasar como parametro.

Código:
private void jTextFieldCodigoKeyReleased(java.awt.event.KeyEvent evt) {
         cadena =this.jTextFieldCodigo.getText();
         Verificar();
    }
bien pues esta todo . ahora tengo un metodo que controla todo y pues lo llamo en el keyreleased de cualqueir jtexfield que deseo chekear . Bye bye . :)
  #10 (permalink)  
Antiguo 22/06/2010, 08:21
 
Fecha de Ingreso: marzo-2009
Ubicación: Santa Marta
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Validar datos en java

si te das cuenta, cada vez que llamas al metodo las variables se inicializan en false. de tal manera que siempre sera una validacion difrente cada vez que utilices el metodo por lo menos esa es mi percepion.
  #11 (permalink)  
Antiguo 22/06/2010, 09:35
 
Fecha de Ingreso: abril-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Respuesta: Validar datos en java

Si se supone que asi tendria que ser pero no ocuurre . Como te explique eso es lo que ocurre quizas sea por que cada vez se llama a ese metodo pero las variables estan fuera del metodo no dentro. son de tipo public para acceder desde otros metodos en la clase , de echo yo utilizo esas variablñes en 3 metodos. tambien tengo un constructor que me crea Dialogos dentro de la clase. estos los llamo al perder el enfoque de un campo es decir , valido mientras se escribe y al perder el enfoqe un objeto. es una doble validadcion. Mientras se escribe solo avisa o ayuda al ususario el otro no le permite equivocarse.. . Si declarop las variables dentro del metodo. como locales. eso si funcionaria. pero no lo hice hehe ya sabes porque.
e aqui mi otro metodo este lo llamo en el lostfocus.

Código:
  public void ComprovarTipoDeCadenaLostfocus(String cadena){
      {
          for (int i = 0; i < cadena.length(); i++)
            if (Character.isDigit(cadena.charAt(i))) {

                algunDigito = true;
            } else {
                algunaLetra = true;
            }
        }
        if(algunDigito && !algunaLetra){
            System.out.println("TODO DIGITOS");
            algunDigito=false;
            algunaLetra=false;
            String Objetus="MInconpatibleC"; //ESTABLESCO EL valor para construr un dialogo 
            CMD.Dialogo(valor,Objetus); //lamo al dialogo. Este responde con una variable que capturo desde el jframe.
        }else if (algunDigito && algunaLetra){
            System.out.println("Aca tenemos numeros y letras");
            algunDigito=false;
            algunaLetra=false;
            String Objetus="MInconpatibleC+N";
           CMD.Dialogo(valor,Objetus);
        }else if(algunaLetra ){
        System.out.println("Solamente letras");
            algunDigito=false;
            algunaLetra=false;
            String Objetus="MInconpatibleN";
          CMD.Dialogo(valor,Objetus);
        }
    }
Es por esto que pue lo reiniciio :)
  #12 (permalink)  
Antiguo 22/06/2010, 09:38
 
Fecha de Ingreso: marzo-2009
Ubicación: Santa Marta
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Validar datos en java

Ah, ok. debiste empezar por ahiiiii... jajajajajaja.... Oks...!!!
te cuidas....!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:08.