获取在Java中的Jtable中选择的多行

时间:2013-10-20 06:24:43

标签: java swing jtable mouse-listeners

我试图在表格中选择所有原始数据,我使用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 !!!!!!

为了更清楚地了解我的目标,请查看此图片:

enter image description here

我该怎么做?我搜索了很多,但要么我使用了错误的关键字,要么互联网上没有简单的解决方案。我希望有人可以帮助我。

最好的问候和提前感谢,Fadel

2 个答案:

答案 0 :(得分:3)

使用ListSelectionModel

您可以从表格Table.getSelectionModel()

中获取

ListSelectionModel为您提供所选索引。使用它们,您可以通过TableModel获取所选对象。

答案 1 :(得分:3)

来自JavaDocs

  

返回第一个选定行的索引,如果没有选择行,则返回-1。

尝试使用JTable#getSelectedRows,它将返回所选行标记的数组

您可能还需要查看JTable#convertRowIndexToModel,它会将视图索引转换为模型索引,这对表进行排序时很有用。

您应使用MouseListener而不是使用ListSelectionListener,这会让您知道选择何时发生变化,因为使用时可能会使用键盘更改选择MouseListener显然,不会告诉你。

查看How to write a List Selection Listener了解详情