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

Aplicacion Gráfica para Libreria

Estas en el tema de Aplicacion Gráfica para Libreria en el foro de Java en Foros del Web. Hola, que tal, saludos, tengo una aplicación gráfica que tengo que presentar y necesito ayudar: Estoy trabajando con un JFrame, y dentro del mismo con ...
  #1 (permalink)  
Antiguo 03/11/2005, 15:10
Usuario no validado
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta Aplicacion Gráfica para Libreria

Hola, que tal, saludos,
tengo una aplicación gráfica que tengo que presentar y necesito ayudar:
Estoy trabajando con un JFrame, y dentro del mismo con un JInternalFrame en el JInternalFrame tengo un JPanel, aqui viene lo bueno, tengo un JTextField el cual solo aceptar números y cuando pierde el foco tiene que verificar si la información ingresada está correcta o no, alli les va el código

Código:
JTextField ruc=new JTextField(10);
ruc.addKeyListener(new ValidarEntero());
ruc.addFocusListener(new ValidarCedula());
La clase validar entero extiende de KeyAdapter y tiene:

Código:
public void keyTyped(KeyEvent e) {
    char caracter=e.getKeyChar();
    if((caracter<'0')||(caracter>'9')) {
        e.consume();
        e.setKeyChar(null);
    }
}
Esto es solo para aceptar números, pero cuando pierde el foco está la clase validarcedula extiende de FocusAdapter y tiene:

Código:
public void focusLost(FocusEvent e) {
    String ruc=((JTextField)e.getSource()).getText(); //retorna el texto
    if  (!(Persona.validarRuc(ruc))&& { //compara que el texto esté bien ingresado (si es que está bien ingresado debuelve true, y se niega y no entra en el buble), y si no lo está entra aquí
        String mensaje= "El número de cédula ingresado\n"+((JTextField)e.getSource()).getText()+"\nes incorrecto." +
                    "\nVerifique el número de la Cédula";
        ((JTextField)e.getSource()).selectAll();
        ((JTextField)e.getSource()).requestFocus();
        JOptionPane.showMessageDialog(this.j,mensaje, "Error en la Cédula", JOptionPane.ERROR_MESSAGE);
    }
}
El problema es que se muestra dos veces seguidas el mensaje, alguien me puede ayudar a resolver este problema.

De antemano Muchas Gracias...

  #2 (permalink)  
Antiguo 04/11/2005, 20:07
Usuario no validado
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Antigüedad: 18 años, 6 meses
Puntos: 0
Gracias a la personas que trataron de ayudar, pero ya encontré el error, cuando pierde el foco mando a mostrar otro mensaje y este vuelve a perder el foco, por eso aparece como 4 o dos veces, pero se puede solucionar con banderas, preguntando si las banderas están en falso entre en el bucle, caso contrario siga no mas...

Aqui les va el codigo..

flag debe comenzar en el JInternalFrame como false.

Código:
if  ((!(Persona.validarRuc(ruc)))&&(ruc.length()>0)&&(!(flag))) {
    flag=true;
    String mensaje= "El número de cédula ingresado\n"+ruc+"\nes incorrecto." +"\nVerifique el número de la Cédula";
    JOptionPane.showMessageDialog(null,mensaje,"Error en la Cédula", JOptionPane.INFORMATION_MESSAGE);
    this.ruc.requestFocus();
    this.ruc.selectAll();
} else {
flag=false;
}
Gracias a Vladimir (amigo y profe de la U), a goncafa y a otras personas...
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




La zona horaria es GMT -6. Ahora son las 15:07.