我试图在表格中选择所有原始数据,我使用GetSelectedRaw()方法来获取用户选择的原始数据:
int raw_index = table.getSelectedRow();
但如果用户选择多个原始怎么办?我需要获取表格中所有原始数据的所有索引...
我把onMoussPressed和onMoussReleased放到桌子上:
int start_rows_to_delete; // the first selected raw
int end_rows_to_delete; // the last selected raw
private void tableMousePressed(java.awt.event.MouseEvent evt) {
start_rows_to_delete = table.getSelectedRow();
}
private void tableMouseReleased(java.awt.event.MouseEvent evt) {
end_rows_to_delete = table.getSelectedRow();
}
前卫的运行。给我吗: start_rows_to_delete = start_rows_to_delete !!!!!!
为了更清楚地了解我的目标,请查看此图片:
我该怎么做?我搜索了很多,但要么我使用了错误的关键字,要么互联网上没有简单的解决方案。我希望有人可以帮助我。
最好的问候和提前感谢,Fadel
答案 0 :(得分:3)
使用ListSelectionModel
。
您可以从表格Table.getSelectionModel()
ListSelectionModel
为您提供所选索引。使用它们,您可以通过TableModel获取所选对象。
答案 1 :(得分:3)
来自JavaDocs
返回第一个选定行的索引,如果没有选择行,则返回-1。
尝试使用JTable#getSelectedRows
,它将返回所选行标记的数组
您可能还需要查看JTable#convertRowIndexToModel
,它会将视图索引转换为模型索引,这对表进行排序时很有用。
您应使用MouseListener
而不是使用ListSelectionListener
,这会让您知道选择何时发生变化,因为使用时可能会使用键盘更改选择MouseListener
显然,不会告诉你。