是否可以从我的表模型中获取选定的行索引?
我的对象已经知道表模型。我可以使用模型获取选定的索引,而不是传递对它自己的表的引用吗?
就像 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
TableModel 只关注数据,ListSelectionModel 关注当前选择的内容,因此,不,您无法从 TableModel 中获取选定的行。
如果您让您的模型类实现 ListSelectionModel 以及 TableModel,您将能够从一个模型中进行选择......但是您不能扩展两个抽象模型类:-((作为您的类,这也不是一个好主意会承担太多的责任)。
您可以从绑定的 Table 中获取索引,然后您可以使用它来操作表模型。例如,如果我想在我的表模型中删除一个 Row:
myTableModel.removeValueAt(myTable.getSelectedRow());