2016-05-25 5 views
0

テーブルのデータを処理するためにテーブルモデルを使用しています。それで、TableRowSorterがクリックされたときに、選択した行のユーザーオブジェクトを取得します。

私はArrayList<MyUserObject>datalistを使ってモデルのデータを保持します。私は、モデルで次のメソッドを使用してユーザーオブジェクトをretrivingよ:テーブルの行を選択してしまっているとき

public MyUserObject getMyUserObject(int rowIndex) 
{ 
    return datalist.get(rowIndex); 
} 

は、だから私はdataTable.getSelectedRow()を使用してListSelectionListenerで選択された行のインデックスを取得することができるよと使用しますその値を私は上記の方法を使用してモデルからユーザーオブジェクトを取得することができます。

しかし、TableRowSorterを使用すると、選択した行のユーザーオブジェクトの実際の値を取得できません。 tablesorterをクリックすると、データの行インデックスが変更されるためです。しかし、モデルでは変わらないままです。だから私は選択された行に関する正しいユーザーオブジェクトを取得することができません。

つまり、表の行順の変更はモデルに反映される必要があります。

モデル内のarraylistを再配置する必要がありますか?または、他に簡単な方法がありますか?

この問題を解決するにはどうすればよいですか?

答えて

1

私はその後、モデルの列にインデックスを変換する必要が

で選択された行のインデックスを取得することができるよ:

int modelRow = table.convertRowIndexToModel(selectedRow); 
関連する問題