private void switch_clocks() throws Exception { activeClock.pause(); Iterator<Entry<PlayerColor, Clock>> iter = playerClocks.entrySet().iterator(); while (iter.hasNext()) { Entry<PlayerColor, Clock> entry = iter.next(); if (entry.getValue() == activeClock) { Entry<PlayerColor, Clock> nextEntry = null; if (iter.hasNext()) { nextEntry = iter.next(); } else { // next is first one nextEntry = playerClocks.entrySet().iterator().next(); } activeClock = nextEntry.getValue(); if (activeClock.isStarted() == false) { activeClock.start(); } else { activeClock.resume(); } } } }