addShutdownHook()を使用してCtrl + Cを処理するSwingアプリケーションがあり、通常の状況でJLabelテキストを変更する関数を呼び出すシャットダウンタスクの1つまで正常に動作し、その時点でハングします。
問題は、Swing EDTが終了したか、何かを待っていることだと思います。
EDTが終了したか「完了」したかを判断する方法(Swingメソッドの呼び出しを回避できるようにするため)、またはCtrl-Cでの通常のウィンドウを閉じる動作を防ぐ方法はありますか?
明確にするために:
というクラスのメソッドがありstop()ます。通常の状況では、これは(その補足とともにstart())呼び出される可能性があり、発生した視覚的なフィードバックのために、JLabelが更新される原因となる一連の事柄をトリガーしますstop()。
シャットダウンフックが実行されたら、stop()いくつかのリソースを正常にシャットダウンするために呼び出す必要があります。
私が求めているのは、Swing EDTが存在しないことをどのように検出できるかということです。そのためstop()、Swingの欠如を検出し、Swing関数の呼び出しを回避するように書き直すことができます。