Continuo con el sistema de asistencia, en la que el usuario coloca el dedo en un lector y coloca al mismo tiempo un carnet en el que previamente esta registrada la huella. El sistema lo que hace es una vez que marcar un botón llama a una función que lo que hace es comparar si la huella que esta colocando es la misma que tiene en el carnet lo permite marcar la asistencia... Ahora bien el usuario va a marcar la asistencia que le corresponda dependiendo del tipo de usuario, administrativo o profesor. Cuando ejecuto el programa por primera vez lo hace sin ningún problema, pero cuando lo voy a ejecutar por segunda vez me sale sale un error que dice que java ha detectado un problema y debe cerrarse y me tumba la aplicación.
Les coloco la parte del código que hace la llamada a las diferentes clases dependiendo el tipo de usuario:::
Código HTML:
public static void buscar_cedula_tarjeta(int x) throws SQLException { cedula = x;// asignando el numero de cedula que se obtiene de la tarjeta if(cedula == 0) { mostrando_mensajes("La cédula no corresponde a un profesor o personal de la Universidad"); } else { tipo_usuario= tipo_usuario(); }// fin del while if( (tipo_usuario == 1) || (tipo_usuario ==5) ){ empleado = new Menu_Empleado(); empleado.setVisible(true); }else { if( (tipo_usuario ==2 ) || (tipo_usuario == 3) || (tipo_usuario ==6) || (tipo_usuario ==7)){ // profesor yo administrativo Menu_Profesor.buscar_registro_asistencia();//verficando si tiene clase asistencia_vigente = existe_asistencia_activa(); if( (asistencia_vigente == 0) ){ if ( (Menu_Profesor. error.equals("")) ) {//La fecha del dia ya esta fuera de rango. empleado = new Menu_Empleado(); empleado.setVisible(true); }else { if(Menu_Profesor. error.equals("Periodo Cerrado") ) { empleado = new Menu_Empleado(); empleado.setVisible(true); }else { if(Menu_Profesor. error.equals("La fecha del dia ya esta fuera de rango.") ) { efectiva = new Permanencia_Efectiva(); efectiva.setVisible(true); }else { if(!Menu_Profesor. error.equals("") ) efectiva = new Permanencia_Efectiva(); efectiva.setVisible(true); } } } // fin del sino de si tiene clase }else { if(asistencia_vigente >0) { //verificando si existe asistencia efectiva if( asistencia_vigente == 1) {// tiene hora recuperativa pendiente recuperativa = new Hora_Recuperativa(); recuperativa.setVisible(true); }else { if( asistencia_vigente == 2) { // tiene hora de permanencia activa try { empleado = new Menu_Empleado(); empleado.setVisible(true); System.in.skip(System.in.available()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { if( asistencia_vigente == 3) { // tiene hora de profesor activa profesor = new Menu_Profesor(); profesor.setVisible(true); }else { if( asistencia_vigente == 0) { // tiene hora de profesor activa efectiva = new Permanencia_Efectiva(); efectiva.setVisible(true); } } } } } } }else { if(tipo_usuario >3){ Acceso.error = "La cedula no corresponde con la de ningún personal de la Universidad. Verifique"; Acceso.mostrando_mensajes(Acceso.error); }// }// fin de tipo de usuario = 3 }// fin del else // }// fin del else }// fin de la funcion