static void disposeWindowAfter_unlessMouseInIt(final double seconds, final Component c) { if (seconds <= 0) ret; thread "Dispose window" { sleepSeconds(seconds); while (mouseInWindow(c)) // TODO: check if other windows are on top sleepSeconds(1); disposeWindow(c); } } static void disposeWindowAfter_unlessMouseInIt(Component c, double seconds) { disposeWindowAfter_unlessMouseInIt(seconds, c); }