sclass FrameCoActivator { long lastTime; int timeout = 100; // prohibit endless loop *(final JFrame... frames) { for (final JFrame f1 : frames) { f1.addWindowListener(new WindowAdapter { public void windowIconified(WindowEvent e) { lastTime = sysNow(); } public void windowActivated(WindowEvent e) { if (sysNow() >= lastTime+timeout) { lastTime = sysNow(); //print(text); for (JFrame f2 : frames) if (f2 != f1) activateFrame(f2); activateFrame(f1); } } }); } } svoid coActivateFrames(JFrame... frames) { new FrameCoActivator(frameas); }