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

Estados de los usuarios

Estas en el tema de Estados de los usuarios en el foro de Java en Foros del Web. Hola amigos. Estoy haciendo una aplicación en java (swing), es una aplicación que controla los tiempos de los usuarios al momento de atender los clientes. ...
  #1 (permalink)  
Antiguo 21/11/2011, 15:57
Usuario no validado
 
Fecha de Ingreso: julio-2008
Ubicación: Quito
Mensajes: 76
Antigüedad: 15 años, 9 meses
Puntos: 2
Estados de los usuarios

Hola amigos.

Estoy haciendo una aplicación en java (swing), es una aplicación que controla los tiempos de los usuarios al momento de atender los clientes.

Siempre registra los tiempos que se demoran los usuarios en atender un clientes, y estoy haciendo una parte en la que... se visualiza a los usuarios y mediante una consulta a la base de datos puedo saber si está conectado, desconectado, atendiendo cliente, llamando cliente, libre, almuerzo, etc (estados del usuario en el sistema) lo estoy realizando con este código:

Código:
public void timerjava(){
        TimerTask timerTask = new TimerTask(){
            public void run(){
                contaac++;
                System.out.println("Timer Java: "+contaac);
                //estadodeusuario();
                consulta_estado_de_usuario();
            }
        };
        Timer timer1 = new Timer();
        timer1.scheduleAtFixedRate(timerTask, 0, 2000);
        //timer1.cancel();
    }

public void consulta_estado_de_usuario(){
        String consultaSQL="SELECT u.usu_nombres, e.est_estado, a.age_agencia FROM usuario u, estado e, agencia a WHERE u.est_id = e.est_id and a.age_id=u.age_id";
        try {
            stm = (Statement)objconexion.conn.createStatement();
            rs = stm.executeQuery (consultaSQL);
            int totalRegistros=-1;
            while (rs.next()){
                totalRegistros++;
            }
            estadodeusuario(totalRegistros,3,consultaSQL);
        }catch (SQLException ex) {System.out.println("No se obtuvo hacer la consulta de consulta_estado_de_usuario "+ ex);}
        
    }
Mi consulta es, si lo estoy haciendo bien?? con el timer?? ya que tengo un problema, cuando corre el programa... corre bien algunas veces y algunas veces se corta... entonces no sé si puedo hacerlo de otra forma o no!!! aquí el error, pero continúa con la cuenta:

Código:
Timer Java: 4
Timer Java: 5
Timer Java: 6
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
	at java.util.Vector.elementAt(Vector.java:470)
	at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294)
	at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderRenderer(BasicTableHeaderUI.java:693)
	at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableHeaderUI.java:737)
	at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTableHeaderUI.java:765)
	at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:796)
	at javax.swing.JComponent.getPreferredSize(JComponent.java:1660)
	at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:95)
	at java.awt.Container.preferredSize(Container.java:1788)
	at java.awt.Container.getPreferredSize(Container.java:1773)
	at javax.swing.JComponent.getPreferredSize(JComponent.java:1662)
	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:723)
	at java.awt.Container.layout(Container.java:1503)
	at java.awt.Container.doLayout(Container.java:1492)
	at java.awt.Container.validateTree(Container.java:1688)
	at java.awt.Container.validate(Container.java:1623)
	at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:653)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1620)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Timer Java: 7
Timer Java: 8
Timer Java: 9
Timer Java: 10
  #2 (permalink)  
Antiguo 22/11/2011, 06:09
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Estados de los usuarios

tu problema es la variable totalRegistros.

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0



Cuando no entra al while, el mal nombrado método (el nombre de un método DEBE denotar una acción) estadodeusuario no controla el valor.. cuando es -1
Código Java:
Ver original
  1. int totalRegistros=-1;
  2.             while (rs.next()){
  3.                 totalRegistros++;
  4.             }
  5.              estadodeusuario(totalRegistros,3,consultaSQL);
__________________
BadProgrammerException!

Etiquetas: estados, sql, string, usuarios
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 04:06.