Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2012, 15:00
goncho_hdez
 
Fecha de Ingreso: mayo-2012
Ubicación: Madrid
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Pregunta Detener Timer

Hola,

he creado un pequeño programa que cuando hace click en un boton salta una cuenta atras de 5 minutos. los pasos son los siguientes.

Click en el boton -> creo un nuevo timer y cada segundo voy poniendo en un jlabel el tiempo actual.

la primera vez todo va normal, pero la segunda vez que das al boton, el thread con el timer de la primera vez sigue contado, por tanto va el doble de rapido.

Existe alguna manera de parar ese timer. he intentado haciendo timer.stop(), pero claro desde la misma funcion no se puede, y tampoco puedo añadirlo en el evento del boton porque pararia el thread principal, os dejo el codigo.

Código:
    private void azul_botActionPerformed(java.awt.event.ActionEvent evt) {                                         

      azul_cont.setText("300");
      
Timer timer = new Timer (1000, new ActionListener () 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
        int seg = Integer.parseInt(azul_cont.getText());
     
       if(seg!=0){
              seg=seg-1;            
          azul_cont.setText(seg+"");          
          }
          
     } 
}); 
timer.start();