sclass FrameCoActivator { long lastTime; int timeout = 100; // prohibit endless loop *(JFrame f1, final JFrame f2) { link(f1, f2, "zoom"); link(f2, f1, "boom."); } void link(final JFrame f1, final JFrame f2, fS text) { f1.addWindowListener(new WindowAdapter { public void windowIconified(WindowEvent e) { lastTime = sysNow(); } public void windowActivated(WindowEvent e) { if (sysNow() >= lastTime+timeout) { lastTime = sysNow(); //print(text); activateFrame(f2); activateFrame(f1); } } }); } } svoid coActivateFrames(JFrame f1, final JFrame f2) { new FrameCoActivator(f1, f2); }