public class Timer { private Callback callback = null; public void setCallback(Callback theCallback) { callback = theCallback; } public void run() { int tickNum = 0; while (true) { callback.tick(tickNum); tickNum = tickNum + 1; try { Thread.sleep(1000); } catch(InterruptedException e) {} } } }