Java - PROBLEMA CON TIMER, AYUDA URGENTE!!!!

 
Vista:

PROBLEMA CON TIMER, AYUDA URGENTE!!!!

Publicado por Toni (7 intervenciones) el 26/11/2007 20:44:57
Hola a todos, estoy realizando un programa en Java usando un temporizador. Buscando por la red he encontrado que puedo usar o bien javax.swing.Timer o bien java.util.Timer. Os explico lo que pretendo y os comento cuál es mi problema.

Bien, pretendo crear un temporizador, el cual, al pulsar un botón empiece a contar el tiempo, y cuando pulse otro se pare, de modo que si vuelvo a pulsar el primer botón siga el temporizador nuevamente. No es necesario que el temporizador siga por donde iba, ya que no pretendo contar números ni nada de eso, me vale con que el temporizador inicie nuevamente, ya que solamente quiero que cuente los segundos, y que cada segundo me avise para realizar una acción determinada.

Probando con los dos tipos de temporizadores que he comentado antes, me sale lo mismo, y mi problema es el siguiente:

Cuando inicio el temporizador todo va como la seda, el problema viene cuando pulso el botón para pararlo y quiero volver a iniciarlo de nuevo pulsando nuevamente el primer botón que lo vuelve a "activar", por así decirlo. Al hacer esto, el temporizador no se para, sigue enviando señales al ActionListener, ya que he puesto un System.out.println("Aqui llega el temp."); y me lo muestra siempre.

Una cosa que he observado es que crea como si fuera 3 instancias del temporizador, y que al pararlo con timer.stop(); solamente es como si parase la última instancia, ya que el resto siguen, por lo tanto, cuando pretendo volver a reiniciar el temporizador no sale el resultado que espero.

Os pongo cómo he creado el temporizador:

ActionListener task = new ActionListener()
{
int i=0;
public void actionPerformed(ActionEvent evt)
{
System.out.println("Entra en el reloj " + i + " " + tiempo);
miHilo.interrupt();
miHilo2.interrupt();
repaint();
i++;
}
};

Timer tiempo = new Timer(1000,task);

Y las 3 "instancias" de las que os he hablado antes, y que se muestran al hacer el System.out.println(); son las siguientes:

Entra en el reloj 0 java.util.Timer@16b904d
Entra en el reloj 0 java.util.Timer@cec78d
Entra en el reloj 0 java.util.Timer@18f1a31

No sé a que se debe ésto, y ni siquiera si es lo que debería salir y demás. No estoy muy puesto en el tema de los temporizadores y es una duda urgente que debo solucionar lo antes posible.

Necesito ayuda urgente, espero que alguien me pueda echar una mano. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROBLEMA CON TIMER, AYUDA URGENTE!!!!

Publicado por Diego Mauricio (1 intervención) el 09/09/2008 06:04:17
Compañero, yo tambien estoy en la busqueda de una solucion para un problema similar, puede que no le ayude mucho pero bueque a cerca del timertask, en el caso del temporizador trabajan de la mano el timer y el timertask, no se como se utilizan muy bien, de hecho ese es el problema que tengo. Por otra parte, la respuesta que le da es una direccion en memoria, lo que quiere decir que esta imprimiendo un apuntador y no el resultado que necesita, ahora, hay algo que si tengo claro y es que el contructor del timer no lleva parametros. espero que sirva de algo mi respuesta aun que se que no va a ser mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar