Я использую табличную модель для обработки данных в таблице. В этом,
Я использую ArrayList<MyUserObject>datalist
для хранения данных модели. Я извлекаю пользовательский объект, используя следующий метод в модели:
public MyUserObject getMyUserObject(int rowIndex)
{
return datalist.get(rowIndex);
}
Поэтому, когда выбрана строка таблицы, я могу получить индекс выбранной строки с помощью ListSelectionListener
, используя dataTable.getSelectedRow()
, и, используя это значение, я могу получить пользовательский объект из модели, используя вышеуказанный метод.
Но когда используется TableRowSorter, я не могу получить фактическое значение пользовательского объекта в выбранной строке. Потому что при нажатии на tablesorter индекс строки данных изменяется. Но в модели он остается неизменным. Поэтому я не могу получить правильный пользовательский объект относительно выбранной строки.
Другими словами, изменения порядка строк в таблице должны отражаться в модели.
Должен ли я переставить массив в модели? Или есть другие простые способы сделать это?
Как я могу решить эту проблему?