Java 取消选择JTable中的选定行
我使用Swing和JTable创建了一个UI。我已经实现了一个Java 取消选择JTable中的选定行,java,swing,jtable,listselectionlistener,Java,Swing,Jtable,Listselectionlistener,我使用Swing和JTable创建了一个UI。我已经实现了一个ListSelectionListener,通过它我可以根据表中选定的行获取记录。我无法在选择后取消选择该行 所以基本上我应该能够用一次点击来选择一行,然后我应该能够用另一次点击来取消选择该行 我尝试使用tableName.getSelectionModel.clearSelection,但我不知道如何查看行是否被选中。你会怎么告诉我 我尝试的另一个解决方案是使用鼠标单击侦听器。同样,我无法编写条件来检查鼠标单击是否发生在先前选定的行
ListSelectionListener
,通过它我可以根据表中选定的行获取记录。我无法在选择后取消选择该行
所以基本上我应该能够用一次点击来选择一行,然后我应该能够用另一次点击来取消选择该行
我尝试使用tableName.getSelectionModel.clearSelection
,但我不知道如何查看行是否被选中。你会怎么告诉我
我尝试的另一个解决方案是使用鼠标单击侦听器。同样,我无法编写条件来检查鼠标单击是否发生在先前选定的行上。是否有一种方法可以选择上一行
我使用的是
DefaultTableModel
当您使用鼠标单击时,通过按住“Control”键,默认情况下支持此功能。这是大多数应用程序使用的标准
如果您真的想使用非标准方法,那么您可能应该定制
ListSelectionModel
。我猜您会重写setSelectionInterval(…)
方法。也就是说,您将首先检查当前是否选中了该行。如果是,则调用clearSelection()
方法并返回。否则调用super.setSelectionInterval(…)
它可能很旧,但可以正常工作
table = new JTable() {
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
{
//Always toggle on single selection
super.changeSelection(rowIndex, columnIndex, !extend, extend);
}
};
当然,请参阅或如果您想直接使用SelectionModel,请检查此问题。。