JTable があり、その JTable に行を動的に挿入しています。ユーザーの介入の後、新しい行が挿入されます。次に、選択された行番号としてパラメーターを使用して関数を呼び出し、その関数内に、それに応じて同じ行を更新するコードがあります。行の挿入と行の値の更新の各コードは、個別のスレッドで実行されます。
public void updateRow(int row,JTable myTable)
{
String text = "";
//After lot of processing, setting the table cell value at the 'row' on the 4th column
myTable.setValueAt(text, row, 4);
}
私が直面している問題は次のとおりです。
ユーザーが行を削除すると、行の位置が変更され、その時点で関数updateRow()
が他の行を更新しようとすると、行数の変更のために失敗します。
一度に 3 行あり、各行の updateRow が進行中であるとしましょう。
updateRow(0,userTable);//For the 1st row
updateRow(1,userTable);//For the 2nd row
updateRow(2,userTable);//For the 3rd row
2 行目の updateRow() が完了したとします。これにより、3 行目の updateRow() 関数で問題が発生します。行の値が '2' であるためです。3行目が削除されたため、3行目がなくなり、次のコードが失敗します
myTable.setValueAt(text, row, 4);//Currently, row has the value as '2'
行の位置が動的に変更された場合でも、行の値を使用して行の更新を追跡する方法を誰かが提案できますか?
前もって感謝します。