TableRowSorter приводит к дезорганизации номеров строк - PullRequest
0 голосов
/ 05 марта 2019

Для моей программы важно, чтобы номер строки, присвоенный переменной внутри, соответствовал ее положению, но после сортировки это испортилось.Используя DefaultTableModel, это то, что я использую для сортировки:

int rownumber = Table.getRowCount();

TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(Table.getModel());

Table.setRowSorter(sorter);

List<RowSorter.SortKey> sortKeys = new ArrayList<>(rownumber);

sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));

sorter.setSortKeys(sortKeys);

Сортировка выполняется после нажатия кнопки JButton и работает визуально на JTable, как намечено, но проблема в том, что в действительности первая запись всегда будетбыть в положении (1,1), так как мой JTable имеет две колонки.Например, если моя таблица выглядела так:

|----|----|
|Col1|Col2|
|----|----|
|  1 |  2 |
|----|----|
|  3 |  4 |
|----|----|

Несмотря на то, что верхняя строка имеет значения (1, 2), чтение из model.getValueAt(0,1) вернет значение 4, как это было в строкево-первых.Я надеюсь, что это ясно;заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 марта 2019

Оказывается, использование model.getValueAt() было проблемой.Переключение на просто Table.getValueAt() решило проблему.

...