получение выбранной строки через AbstractTableModel - PullRequest
5 голосов
/ 13 мая 2009

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

Мой объект уже знает о табличной модели. Вместо того, чтобы передавать ссылку на таблицу самостоятельно, я могу получить выбранный индекс, используя модель?

Ответы [ 4 ]

13 голосов
/ 13 мая 2009

Как сказал мистер Вигглз, вы можете получить его из ListSelectionModel, к которой вы можете обратиться из самой таблицы. Однако в JTable есть удобные методы для получения выбранных строк. Если ваша таблица сортируется и т. Д., Вам также нужно будет выполнить метод convertRowIndexToModel:)

Из JTable JavaDoc:

   int[] selection = table.getSelectedRows();
   for (int i = 0; i < selection.length; i++) {
     selection[i] = table.convertRowIndexToModel(selection[i]);
   }
   // selection is now in terms of the underlying TableModel
6 голосов
/ 13 мая 2009

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

0 голосов
/ 31 марта 2017

Вы можете получить индекс из связанной таблицы, а затем использовать его для управления моделью таблицы. Например, если я хочу удалить строку в моей модели таблицы:

myTableModel.removeValueAt(myTable.getSelectedRow());
0 голосов
/ 13 мая 2009

Если вы позволите вашему классу модели реализовать ListSelectionModel, а также TableModel, вы сможете получить выборку из одной модели ... но вы не можете расширять два абстрактных класса модели :-( (Это также не очень хорошая идея в любом случае поскольку у вашего класса будет слишком много обязанностей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...