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