取消选择JTable中的选定行

kir*_*ify 2 java swing jtable listselectionlistener

我使用Swing和JTable创建了一个UI.我实现了一个ListSelectionListener通过它,我可以根据表中选定的行获取记录.选择后我无法取消选择该行.

所以基本上我应该能够通过一次单击选择一行,然后我应该可以通过再次单击取消选择该行.

我尝试过使用tableName.getSelectionModel.clearSelection,但我不知道如何查看是否选择了某行.什么会告诉我这个?

我尝试的另一个解决方案是使用鼠标单击侦听器.同样,我无法编写条件来检查鼠标单击是否发生在先前选定的行上.有没有办法让我选择上一行?

我正在使用DefaultTableModel.

cam*_*ckr 5

默认情况下,当您使用鼠标单击时按住"Control"键可以支持此功能.这是大多数应用程序使用的标准.

如果你真的想使用非标准方法,那么你可能应该自定义ListSelectionModel.我猜你会覆盖这个setSelectionInterval(...)方法.那就是你首先要检查当前行是否被选中.如果是,则调用该clearSelection()方法并返回.否则调用super.setSelectionInterval(...).