在我的 JavaFX 表上,当我单击一行时,它会选择该行。现在,当我第二次单击先前选择的同一行时,我想取消选择该特定行。是否可以 ?如果可能,请分享一些示例代码。
最佳答案
下面的一段代码适用于这个要求。
tableView.setRowFactory(new Callback<TableView<Person>, TableRow<Person>>() {
@Override
public TableRow<Person> call(TableView<Person> tableView2) {
final TableRow<Person> row = new TableRow<>();
row.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
final int index = row.getIndex();
if (index >= 0 && index < tableView.getItems().size() && tableView.getSelectionModel().isSelected(index) ) {
tableView.getSelectionModel().clearSelection();
event.consume();
}
}
});
return row;
}
});
使用了来自 oracle 表 View 示例的相同 Person 类。原始答案由@James_D 在 oracle 的论坛中给出。
关于javafx-2 - 如何在javaFX中第二次单击/选择时取消选择选定的表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490868/