如何检测当用户单击某个单元格时选择了哪一列(名称或 ID 等)?
要选择单个单元格而不是整行,请调用
tableView.getSelectionModel().setCellSelectionEnabled(true);
要跟踪选择了哪些单元格,您可以这样做
final ObservableList<TablePosition> selectedCells = table.getSelectionModel().getSelectedCells();
selectedCells.addListener(new ListChangeListener<TablePosition>() {
@Override
public void onChanged(Change change) {
for (TablePosition pos : selectedCells) {
System.out.println("Cell selected in row "+pos.getRow()+" and column "+pos.getTableColumn().getText());
}
});
});
我一直在尝试应用这种类型的处理,尽管是在 Kotlin 中。我很确定编程语言(Java 与 Kotlin)在这种情况下应该不重要。
不幸的是,上面建议的方法似乎不再有效,因为我收到了一条错误消息“ 2 type argument Expected for class TablePosition”
这是我尝试过的代码:
val listChangeListener = ListChangeListener<TablePosition>()
{ fun onChanged(c: ListChangeListener<TablePosition>)
{ println("Selection changed: ")
}
}
this.getSelectionModel().setCellSelectionEnabled(true);
var selectedCells = selectionModel.getSelectedCells();
selectedCells.addListener(listChangeListener)
我在其他地方找到了此问题的参考 - 为什么在声明类型参数时将 JavaFXML TablePosition 实例视为原始类型?
菲尔特洛伊