如何在JTable中取消选择一行?

时间:2014-09-19 07:27:34

标签: java swing jtable

我有JTSe与ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:

 table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

当我使用CTRL +鼠标单击时,选择行并且所有行都是正确的。但是,如果我只想取消选择一个选定的行并按CTRL +鼠标单击一个选定的行,则取消选择所有行,而不是一个。然后,如果我按CTRL +鼠标再次单击某一行,再次选择previouse行,但没有行,我想取消选择。 我想使用CTRL +鼠标单击取消选择一行。我怎样才能做到这一点?

编辑: 我的代码中有这个:

table.getColumnModel().setColumnSelectionAllowed(true);

我发现如果我删除这一行,那么一切正常。但是JTable可以正常工作,尽管ColumnSelectionAllowed'是真的?

2 个答案:

答案 0 :(得分:0)

clearSelection 上尝试方法 JTable

通过调用 clearSelection on the ListSelectionModel

来工作

答案 1 :(得分:0)

如果您正在寻找许多人取消选择的一行,请使用以下代码:

table.getSelectionModel().removeSelectionInterval(rowFrom, rowTo);

取消选择一行:

table.getSelectionModel().removeSelectionInterval(row, row);

你可以使用多个这样的选择

table.getSelectionModel().removeSelectionInterval(1, 3); //1,2,3 starting from 0
table.getSelectionModel().removeSelectionInterval(5, 5); //5

将其添加回来,请使用:

table.getSelectionModel().addSelectionInterval(rowFrom, rowTo);

你可以使用多个这样的选择

table.getSelectionModel().addSelectionInterval(1, 2); //1,2
table.getSelectionModel().addSelectionInterval(4, 4); //4

将其设置为特定范围,这将首先清除旧选择,

table.getSelectionModel().addSelectionInterval(rowFrom, rowTo);

它等于:

table.clearSelection();
table.getSelectionModel().addSelectionInterval(rowFrom, rowTo);