Java 如何取消选择JTable中的一行?

Java 如何取消选择JTable中的一行?,java,swing,jtable,Java,Swing,Jtable,我有一个带有ListSelectionModel.MULTIPLE\u INTERVAL\u SELECTION的JTable: table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 当我使用CTRL+鼠标单击时,行被选中,所有行都是正确的。但是,如果我只想取消选择一个选定的行,并按CTRL+鼠标单击一个选定的行,则所有行都将取消选择,而不仅仅是一行。然后,如果我再次按CTRL+鼠标单击某一行,以前的行

我有一个带有ListSelectionModel.MULTIPLE\u INTERVAL\u SELECTION的JTable:

 table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
当我使用CTRL+鼠标单击时,行被选中,所有行都是正确的。但是,如果我只想取消选择一个选定的行,并按CTRL+鼠标单击一个选定的行,则所有行都将取消选择,而不仅仅是一行。然后,如果我再次按CTRL+鼠标单击某一行,以前的行将再次被选中,但没有我想要取消选中的行。 我只想使用CTRL+鼠标单击取消选择一行。我该怎么做

编辑: 我的代码中有:

table.getColumnModel().setColumnSelectionAllowed(true);
我发现,如果我删除这一行,那么所有的工作都很好。但是,尽管“ColumnSelectionAllowed”是真的,JTable能正常工作吗

在JTable上尝试方法clearSelection


它通过在ListSelectionModel上调用clearSelection来工作。如果要从多行中取消选择一行,请使用以下代码:

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(1, 2); //1,2
table.getSelectionModel().addSelectionInterval(4, 4); //4
要重新添加,请使用:

table.getSelectionModel().addSelectionInterval(rowFrom, rowTo);
您可以像这样使用多重选择

table.getSelectionModel().removeSelectionInterval(1, 3); //1,2,3 starting from 0
table.getSelectionModel().removeSelectionInterval(5, 5); //5
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);

这不是JTable应该如何工作的。您还有其他代码可以显示吗?这种行为是错误的。考虑提供一个证明你的问题的方法。这将减少混乱和更好的响应