Таймер Swing может к этому. Вы должны создать таймер, который не повторяется (вызовите setRepeats (false) для Timer), а в его методе ActionLerer ActionListener вызовите setVisible (false) или dispose () во втором окне. Учебники по Swing покажут вам, как это использовать: Swing Timer
Но я должен признать, что многим (включая меня) не очень нравятся приложения, в которых окна меняются таким образом. Возможно, вам лучше использовать CardLayout для обмена представлениями JPanel в стабильном JFrame. Опять же, вы можете использовать Swing Timer, чтобы сообщить макету об обмене «карточками». Подробнее об этом: CardLayout
Удачи!