ウィンドウを閉じた後、クラスのオブジェクトを作成してタスクを実行したいと思います。終了後:
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
ウィンドウが閉じられるとすぐに新しい操作を開始できるようにするにはどうすればよいですか?助けてください。
ウィンドウを閉じた後、クラスのオブジェクトを作成してタスクを実行したいと思います。終了後:
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
ウィンドウが閉じられるとすぐに新しい操作を開始できるようにするにはどうすればよいですか?助けてください。
ユーザーが を閉じようとするとJFrame
、次のイベントが発生します。
windowClosing
メソッドWindowListener
が呼び出されます。setDefaultCloseOperation
がトリガーされます。デフォルトのクローズ操作は 4 つあります。
...まったく何もしません。フレームはまだここにあり、閉じるようにというあなたの要求を喜んで無視しています。
setVisible(false)
フレームを呼び出すのと同じ効果。フレームは非表示になり、 を呼び出すことで再び表示できますsetVisible(true)
。
dispose()
フレームを呼び出すのと同じ効果。この効果は HIDE_ON_CLOSE と多少似ていますが、今回はフレームが使用していた OS リソースが解放される点が異なります。setVisible(true)
フレームを再度表示させたい場合は、再度呼び出すことができます。
そのフレームに登録されている のwindowClosed
メソッドWindowListener
が呼び出されます。
また、最後の表示可能なウィンドウが破棄されると、プログラムが終了する可能性があることに注意してください。
を呼び出すのと同じ効果System.exit()
。
したがって、ユーザーがフレームを閉じようとしたときに何が起こるかを完全に制御したい場合は、デフォルトの操作を DO_NOTHING_ON_CLOSE に設定し、コードwindowClosing
をWindowListener
. そこでは、達成したいことに応じて、setVisible(false)、dispose()、または System.exit() を呼び出すことができます。
また、閉じるときに非表示、破棄、または終了するようにデフォルトの操作を設定し、コードwindowClosing
をWindowListener
. この場合、リスナーが最初に呼び出され、次に選択されたアクションが実行されます。
最後に、デフォルトの操作を DISPOSE_ON_CLOSE に設定し、コードwindowClosed
をWindowListener
. このようにして、フレームが最初に破棄され (画面から消えます)、次にコードが実行されます。
After i close my window,i want to create an object of a class and preform a task.
見る
HIDE_ON_CLOSE
simplair as setVisible(false);
、コンテナは再利用可能、呼び出すことで表示可能setVisible(true);
または、 を呼び出すことができますdispose()
。つまり、このコンテナーは再利用可能ではないため、isDisplayable()
呼び出す前にを確認する必要があります。setVisible(true);
クラスのオブジェクトを作成してタスクを実行したい