2つのタブを持つ単純なJTabbedPaneコンポーネントがあります。一方のタブでボタンイベントが発生した場合、現在のビューをもう一方のタブにすぐに設定したいと思います。問題のボタンのactionPerformedメソッドでsetSelectedIndex(int)を使用して現在のタブを正常に切り替えることができますが、ボタンイベントの残りの機能が完了するまでに時間がかかる場合があります。
setSelectedIndex(int)の変更はすぐには発生せず、ボタンのクリック/押下によってトリガーされたactionPerformedメソッドの本体が完了したときにのみ発生するように見えます。
ボタンがクリック/押されたときにタブを切り替えたい理由は、ボタンの残りの部分がクリックされている間、ユーザーが他のタブのテキスト領域に「処理中です、お待ちください」などのメッセージを表示できるようにするためです。機能が実行されます。その機能の結果は、到着すると、「...お待ちください」というメッセージに置き換わります。
つまり、今起こっているのは、ボタンをクリックすると、ボタンの機能が完全に完了するまでそのタブでフリーズし、その後切り替わります。したがって、「...お待ちください」というメッセージは実際には表示されません。
どうしたらいいかわかりません。「機能」用の新しいスレッドを作成し、ボタンクリックイベントでスレッドを開始して、ボタンイベントが終了し、結果を待っている間にタブを切り替えることができるようにします。大声で考えているだけです。どんな助けでも大歓迎です。
-ロブ