5

是否可以从我的表模型中获取选定的行索引?

我的对象已经知道表模型。我可以使用模型获取选定的索引,而不是传递对它自己的表的引用吗?

4

4 回答 4

14

就像 MrWiggles 说的那样,您可以从 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
于 2009-05-13T10:23:00.223 回答
6

TableModel 只关注数据,ListSelectionModel 关注当前选择的内容,因此,不,您无法从 TableModel 中获取选定的行。

于 2009-05-13T10:12:04.127 回答
0

如果您让您的模型类实现 ListSelectionModel 以及 TableModel,您将能够从一个模型中进行选择......但是您不能扩展两个抽象模型类:-((作为您的类,这也不是一个好主意会承担太多的责任)。

于 2009-05-13T10:25:36.567 回答
0

您可以从绑定的 Table 中获取索引,然后您可以使用它来操作表模型。例如,如果我想在我的表模型中删除一个 Row:

myTableModel.removeValueAt(myTable.getSelectedRow());
于 2017-03-31T12:34:53.330 回答