2017-01-17 12 views
-1

私は2つのJFrameを持っています。ボタンを押すと、メインフレームを消して新しいフレームが表示されます。しかし、新しいフレームを閉じると、古いフレームが再び表示されます。最初の部分は私が単純に行うことはできません:Java GUIのインターフェイスが再現

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

しかし、私は新しいフレームを閉じた後に再度メインフレームを再表示したいと思います。私は途中で新しいフレームでDISPOSE_ON_CLOSEを使用します。

+0

今はどうなりますか?あなたの問題を示す[実行可能な例](https://stackoverflow.com/help/mcve)を提供することを検討してください。これはコードダンプではありませんが、あなたがしていることの例はあなたが持っている問題を強調表示します。これにより混乱が少なくなり、より良い応答が得られます – MadProgrammer

+0

コードが長すぎて投稿できません。しかし、あなたが理解していないことは分かりません。メインフレームと新しいフレームの2つのフレームがあります。アプリケーションを実行すると、メインフレームのみが表示されます。ボタンを押すと、メインフレームは表示されなくなり、新しいフレームが表示されます。新しいフレームを終了すると、メインフレームが再び表示されます。 – Altair2033

+0

また、@ MadProgrammerのコメントを補完するには、[複数のJFramesの使用、良い/悪い練習ですか?](http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good)も読んでください。 (BAD)ではなく、['JDialog'](https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html)または[カードレイアウト](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); 
    } 
}); 

両方のフレームをJFrame.DISPOSE_ON_CLOSEに設定する必要があることに注意してください。

関連する問題