このJTableには、1分または(60000l)ごとに残り時間を表示する自動更新機能を実装しています。
しかし、挿入される行がまだ行われていない場合(データのエンコードはJTable自体で行われている)、データが失われると、この問題が発生します。自動更新機能を削除せずに、データの損失を防ぐため。
スレッドを一時停止して(自動更新機能にSwingWorker(Void、Void)を使用)、データの挿入/更新が失われないようにすることはできますか?
このJTableには、1分または(60000l)ごとに残り時間を表示する自動更新機能を実装しています。
しかし、挿入される行がまだ行われていない場合(データのエンコードはJTable自体で行われている)、データが失われると、この問題が発生します。自動更新機能を削除せずに、データの損失を防ぐため。
スレッドを一時停止して(自動更新機能にSwingWorker(Void、Void)を使用)、データの挿入/更新が失われないようにすることはできますか?
自動更新と更新が同じスレッドで行われることを確認してください。これにより、現在の更新が完了するまで自動更新が実行されなくなります。
Event Dispatch Thread (EDT) は有力な候補です。特に、Swing には EDT で操作をキューに入れるためのフレームワークが既に含まれているためです。
public void autorefresh() {
SwingUtilities.invokeLater(
new Runnable() {
...
// code to request refresh goes here.
}
);
}