2010-12-20 1 views
3

こんにちはすべて: 私はJava Swing Appを持っています。ユーザーがアプリケーションの新しいウィンドウを開くためのボタンがあります。私はSystem.Exit(0)を使用して、ユーザーがアプリケーションを閉じることを決定したときに、「閉じる」ボタンを押すと、両方のアプリケーションウィンドウが閉じます。上記Javaスイング閉じる1つのアプリケーションのみ

public static void main(String[] args) 
{  
ghMain = new GreenHouseMain();  
} 

私は第二のアプリケーションのウィンドウを開くために新しいGreenHouseMainオブジェクトを作成するために、同じコードを使用し、その後、最初のアプリケーションを初期化する方法です。

私の質問は、閉じるボタンを押したアプリケーションウィンドウを1つだけ閉じる方法です。

ありがとうございました

答えて

3

閉じるウィンドウオブジェクトのSystem.exit()の代わりにdispose()を呼び出します。可視ウィンドウがなくなると、Event Dispatchスレッドは終了します。

+0

+1 System.exit(code)はJVMを終了し、dispose()はwindowのインスタンスに関連付けられたリソースを破棄します。また、アプリケーションの観点からは、System.exit(コード)呼び出し(または他のすべてのウィンドウの処理)を必要とする「メインウィンドウ」が存在する可能性があります。 – 01es

1

私は両方のウィンドウがJFramesであると仮定します。その場合は、2番目のウィンドウをJDialog、モーダルまたは非モーダルにすることをお勧めします。両方のウィンドウを開く必要があり、ユーザーがどちらを閉じるかを選択できるようにするには、おそらく両方ともダイアログでなければなりませんが、提示した情報に基づいて100%確実ではありません。これらの提案によって問題が解決されない場合は、正確な要件に関する詳細をお知らせください。

1

read the javadocs(setDefaultCloseOperation) System.exit()はまさにそれがやっていることをしているので、それを取り除く。

関連する問題