public class Timer extends Thread { private Timed m_target; private long m_interval; public Timer(Timed t, float i) { m_target = t; m_interval = (long)(i*1000); //setDaemon(true); } public void run() { while(true) { try { System.out.println("in sleeping"); sleep(m_interval); } catch(InterruptedException e) { } System.out.println("out sleeping"); m_target.tick(this); if(!m_target.Alive()) break; } } }