Получение содержимого строки JTable после сортировки пользователем, щелкнув столбец - PullRequest
4 голосов
/ 21 июня 2011

У меня есть панель с двумя таблицами A и B. Когда в A выбрана строка, содержимое B должно быть обновлено.

Мой код обнаруживает выбор строки в штрафе.Но когда пользователь нажимает на заголовок столбца для сортировки строк, это не похоже на то, что это учитывается в табличной модели А.

Таким образом, я могу получить выбранный номер строки (что правильно с учетомсортировка), но когда я пытаюсь извлечь содержимое поля строки из A, используя его табличную модель, он выдает мне значения, как если бы строки не были отсортированы.

Как извлечь содержимое выбранной строки изномер выбранной строки?

1 Ответ

10 голосов
/ 21 июня 2011

Без какого-либо кода трудно сказать наверняка, в чем ваша проблема.Тем не менее, похоже, что вы смешиваете индексы строк между представлением и моделью.Вы должны четко понимать, на какую систему координат вы ссылаетесь (представление или модель), когда у вас есть номер строки.См. API JTable для методов convertRowIndexToModel и convertRowIndexToView.

Возможно, вам нужно что-то вроде этого:

JTable table = ...;
TableModel model = ...;

int viewRow = table.getSelectedRow();
int modelRow = table.convertRowIndexToModel(viewRow);
int viewColumn = table.getSelectedColumn();
int modelColumn = table.convertColumnIndexToModel(viewColumn);
Object cell = model.getValueAt( modelRow, modelColumn );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...