void (@Nullable Component c) { if (c == null || requested.contains(c) || !canRefresh(c)) { return; } Frame frame = getFrames()[index]; int delay = frame.getDelay(); if (delay > 0) { requested.add(c); EdtScheduledExecutorService.getInstance().schedule(() -> { requested.remove(c); if (canRefresh(c)) { doRefresh(c); } }, delay, TimeUnit.MILLISECONDS); } else { doRefresh(c); } }