- - PR -
SwingによるGUIライブラリを呼び出し後のSystem.exit()
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-25 18:48
unibon です。こんにちわ。
原理はご推察のとおりだと思います。私も試してみましたが、
だと終りませんね。ダミーの JFrame を作って、
とすれば終れました。アプリケーション側に近い単純なラッパーとしてのライブラリーである JOptionPane のバグとも言えるように感じます。 今回の要件でしたら、JFrame のインスタンスは作るけど、表示しなければそれで良いようにも思いますがいかがでしょうか。 | ||||||||||||
|
投稿日時: 2005-08-26 11:56
全てのトップレベルウィンドウにたいしてdispose()すれば、イベントディスパッチスレッド
が自動的に停止するということですね。知りませんでした。 間違ったことをかいて済みません。 ということは、未記入さんの用途ではJOptionPaneのstaticメソッドは呼ばないほうがよ さそうです。 JOptionPaneの各staticメソッドは内部で 1.JOptionPaneのインスタンス生成 2.JOptionPane#createDialog()をコールして、上記インスタンスの貼り付け先となる ダイアログインスタンスを作成 3.2で生成したダイアログに1を貼り付けて表示 といったことをやっているようです。 問題となっているのは、2で生成したダイアログに対してdispose()がされていないこと、 ということになるのではないでしょうか。 だとすれば、上記の処理に自分でdispose()を呼び出す処理を加えたメソッドを自作 して呼び出す、という手もありそうですよ。 | ||||||||||||
|
投稿日時: 2005-08-26 12:37
シュンさん、unibonさんご返答ありがとうございます。
自分はまだJavaのGUIのノウハウに乏しく、試行錯誤している状態です。 今回の件では、unibonさんが提示してくださったダミーのJFrameを 用いて実装することにしました。 今回の件では大変お世話になりました。 解決とさせていただきます。 今後ともよろしくお願いいたします。 |