0

我试图在表中选择所有原始数据,我使用 GetSelectedRaw() 方法来获取用户选择的原始数据:

int raw_index = table.getSelectedRow();

但是如果用户选择了多个 raw 呢???我需要获取表中选择的所有原始数据的所有索引...

我把 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();
} 

prog的运行。给我:start_rows_to_delete = start_rows_to_delete !!!!!!

为了更了解我的目标,请查看这张图片:

在此处输入图像描述

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

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

4

2 回答 2

4

来自JavaDocs

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

尝试使用JTable#getSelectedRows,这将返回所选行索引的数组

您可能还想看一下JTable#convertRowIndexToModel将视图索引转换为模型索引的方法,这在对表进行排序时很有用。

而不是使用 aMouseListener您应该使用 aListSelectionListener它会在选择更改时通知您,因为使用可能会使用键盘更改选择,而MouseListener显然不会告诉您。

查看如何编写列表选择侦听器以获取更多详细信息

于 2013-10-20T06:33:33.447 回答
3

使用ListSelectionModel.

你可以从桌子上得到它Table.getSelectionModel()

为您提供选定的ListSelectionModel索引。有了它们,您可以通过TableModel获取选定的对象。

于 2013-10-20T06:28:02.040 回答