在我的JavaFX表上,当我单击一行时,它会选择该行.现在,当我第二次在先前选择的同一行上单击时,我想取消选择该特定行.可能吗 ?如果可能,请分享一些示例代码.
Dil*_*Dil 11
下面的代码符合此要求.
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;
}
});
Run Code Online (Sandbox Code Playgroud)
在oracle的表视图示例中使用了相同的Person类.原始答案由@James_D在oracle的论坛中给出.