1

新しいスレッドを作成してアクションを実行し続けるコンボボックスとボタンを備えた JFrame を作成しました。新しい JFrame にログを出力するために、すべての新しいスレッドで新しい JFrame を開始する必要があります。しかし、JFrame に関連するコードを新しいスレッドに入れてその JFrame を閉じても、実行中のスレッドではなくプログラム全体が終了します。私が望むことを可能にするための最良のアプローチは何ですか? 新しいスレッドが開始されるたびに新しい JFrame を開き、その JFrame を閉じるとそのスレッドが終了するようにしたいだけです。

よろしく!

4

2 に答える 2

6

デフォルトでは、 を閉じるJFrameと非表示になります (のドキュメントをsetDefaultCloseOperation()参照してください)。ウィンドウを閉じるとアプリケーションが終了する場合、これは独自のコードが原因である必要があります。たまたま、 に電話しているわけではありませんsetDefaultCloseOperation(JFrame. EXIT_ON_CLOSE)よね?

于 2012-06-09T03:17:13.873 に答える
4

ここにいくつかのアイデアがあります:

  • イベント ディスパッチ スレッドをブロックしないでください。ここSwingWorkerに示すように、代わりに使用してください。

  • 複数のフレームを使用しないでください。適切なレイアウトのコンテナでパネルを使用します。

于 2012-06-09T03:19:24.173 に答える