No puedo parar o cancelar un Timer desde otra clase. Chale!!

Me Pone este mensaje en la consola de eclipse al dar clic a un JButton que desencadena el evento de parar "PararPC1" :

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: unable to create new native thread.
__________________________________________________________________________________

EL CODIGO QUE MI PRIMERA CLASE DONDE HAGO EL TIMER ES ESTE (Cronometro.java):

package Cyber;

import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JTextField;

public class Cronometro{

private Timer timer;
private String tiempo;
private TimerTask task;

private int horasCronometro, minutosCronometro, segundosCronometro;

public Cronometro(){
tiempo = "00:00:00";
}

public void Cronometrar(JTextField jTextField){
timer = new Timer();

task = new TimerTask() {

@Override
public void run() {
++segundosCronometro;
if (segundosCronometro == 60) {
segundosCronometro = 0;
++minutosCronometro;
}
if (minutosCronometro == 60) {
minutosCronometro = 0;
++horasCronometro;
}

tiempo = (horasCronometro <= 9 ? "0" : "") + horasCronometro + ":"
+ (minutosCronometro <= 9 ? "0" : "") + minutosCronometro + ":"
+ (segundosCronometro <= 9 ? "0" : "") + segundosCronometro;

jTextField.setText(String.valueOf(tiempo));

}

};
timer.scheduleAtFixedRate(task, 0, 1000);

}

public Timer getTimer(){
return timer;
}

public String getTiempo(){
return tiempo;
}

public TimerTask getTask(){
return task;
}

public void CronometrarAuto(String TiempoGuardado){}

}
__________________________________________________________________________________

PARTE DE MI CODIGO DE LA OTRA CLASE (ControlCyber.java) donde esta el metodo "actionPerformed" para parar el "Timer", Y EN DONDE ESTA EL PROBLEMA ES EL SIGUIENTE:

public void actionPerformed(ActionEvent e) {
String name = e.getActionCommand();

Cronometro Cronometro1 = new Cronometro();

switch (name){

case "IniciarPC1":

Cronometro1.Cronometrar(txtCronometro1);

break;

case "PararPC1":
Cronometro1.getTimer().cancel();

System.out.print("jaja");
break;

............abajo hay más código pero no importa

__________________________________________________________________________________
AL DAR CLIC En el boton "IniciarPC1" no hay problelma, se inicia el Cronometro o timer. El problema es cuando doy clic en el boton "ParaPC1", ahí es donde me marca este error:

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: unable to create new native thread.

Osea se supone que instanciando la variable "timer" a traves de getTimer() y Dando getTimer().cancel(); se debe parar el timer. Pero no lo hace, sino que me pone el error de arriba.

LO SOLUCIONO DECLARANDO LA VARIABLE "timer" (de Cronometro.java) como Static, y si funciona así, si para el timer y deja de correr el cronometro como quiero. Pero yo no quiero usar la variable como Estatica, la quiero privada y encapsulada como debe ser. Y aparte como tengo mas cronometros SI LA DELCARO ESTATICA, si doy cancel() a uno se paran todos, por eso NO quiero que sea timer static

Ayuda!!!! No encuentro ayuda en ningun foro sobre esto. Chale!!!!!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jose Manuel

Cada vez que tu das un clic a

Cada vez que tu das un clic a un botón llamas al método   y cada vez que lo haces creas una nueva instancia de la clase   . Entonces, estas deteniendo un objecto distinto, por eso, cuando colocas la variable   como estática funciona pues es visible.
Yo creo que podrías hacer un método que detuviera el timer, dentro de la clase   y aplicaras otra lógica para activar/desactiva tus timers.

Por cierto, utiliza los tags, para poder leer mejor tu código.
Saludos.

Imagen de jasdagc

Gracias por responder

Prmero Gracias por tu respuesta. Eso que me dices me da una pista para resolverlo. Trataré de hacer ese metodo que dices, haber que pasa. Y lo de las TAGS, desconosco cuales se usen para encerrar el codigo dentro de ellas. Podrías decirme?.

Espero alguien tenga otra idea aparte de la de José Manuel. Un ejemplo con código estaría genial.

Re: Chale!!

Ayuda!!!! No encuentro ayuda en ningun foro sobre esto. Chale!!!!!!!