テーブルのデータを処理するためにテーブルモデルを使用しています。それで、TableRowSorterがクリックされたときに、選択した行のユーザーオブジェクトを取得します。
私はArrayList<MyUserObject>datalist
を使ってモデルのデータを保持します。私は、モデルで次のメソッドを使用してユーザーオブジェクトをretrivingよ:テーブルの行を選択してしまっているとき
public MyUserObject getMyUserObject(int rowIndex)
{
return datalist.get(rowIndex);
}
は、だから私はdataTable.getSelectedRow()
を使用してListSelectionListener
で選択された行のインデックスを取得することができるよと使用しますその値を私は上記の方法を使用してモデルからユーザーオブジェクトを取得することができます。
しかし、TableRowSorterを使用すると、選択した行のユーザーオブジェクトの実際の値を取得できません。 tablesorterをクリックすると、データの行インデックスが変更されるためです。しかし、モデルでは変わらないままです。だから私は選択された行に関する正しいユーザーオブジェクトを取得することができません。
つまり、表の行順の変更はモデルに反映される必要があります。
モデル内のarraylistを再配置する必要がありますか?または、他に簡単な方法がありますか?
この問題を解決するにはどうすればよいですか?