2017-01-17 3 views
-1

Итак, у меня есть два JFrames. Если я нажму кнопку, я хочу, чтобы основной кадр исчез, и появится новый кадр. Но когда я закрываю новый кадр, я хочу снова открыть старый кадр. Первую часть я не могу сделать это с простым:Java GUI, создающий интерфейсы reappear

mainFrame.setVisible(false); 
newFrame.setVisible(true); 

Но я хочу сделать основной кадр вновь снова после того, как я закрываю новый кадр. Кстати, я использую DISPOSE_ON_CLOSE на новом фрейме.

+0

И что теперь происходит? Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

+0

Код слишком длинный для публикации. Но я не знаю, чего вы не понимаете. У нас есть два кадра, основной кадр и новый кадр. При запуске приложения основной фрейм доступен только для просмотра. Если я нажму кнопку, основной кадр больше не будет виден, и появится новый кадр. Если я выйду из нового фрейма, я хочу снова открыть основной фрейм. – Altair2033

+0

Также в дополнение к комментарию @ MadProgrammer вы также должны прочитать [Использование нескольких JFrames, Good/Bad practice?] (Http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good -или-bad-practice) (BAD), вместо этого вы можете использовать ['JDialog'] (https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html) s или [Карту Макет] (https://docs.oracle.com/javase/tutorial/uiswing/layout/card.html) – Frakcool

ответ

0

Добавить WindowListener в новый JFrame и переопределить метод WindowClosing, а затем снова установить mainFrame.

newFrame.addWindowListener(new java.awt.event.WindowAdapter() { 
    @Override 
    public void windowClosing(java.awt.event.WindowEvent windowEvent) { 
     mainFrame.setVisible(true); 
    } 
}); 

Обратите внимание, что необходимо как Frames быть установлен в JFrame.DISPOSE_ON_CLOSE.

Смежные вопросы