【发布时间】:2014-02-24 13:02:14
【问题描述】:
我正在寻找一种方法来获取 TableView 控件的选定单元格。请注意,我不仅想要单元格值,还想要一个实际的 TableCell 对象。人们会期望该方法:
tableView.getSelectionModel().getSelectedCells().get(0)
这样做,但它返回一个 TablePosition 对象,它为您提供行和列信息,但我看不到从中获取 TableCell 对象的方法。
我需要这个的原因是因为我想响应按键,但是将事件过滤器附加到 TableCell 不起作用(可能是因为它不可编辑)。所以我将它附加到 TableView 上,但是我需要获取当前选择的单元格。
编辑:对于未来的读者:不要弄乱 TableCell 对象,除非在单元工厂中。按照设计者的意图使用 TableView,否则你会遇到很多麻烦。如果您需要单个表中来自多个源的数据,最好创建一个聚合所有数据的新类并将其用作 TableView 源。
【问题讨论】:
-
可以获取存储在单元格中的数据,但是获取单元格对象,我从来没有这样做过
-
JavaFX 重用单元格和行。将只创建足够的单元格来覆盖表格中实际可见的内容,并且可能还有一些额外的单元格。就像您在编辑中所说的那样,通过单元工厂创建具有所需功能的单元。它应该具有确定其状态所需的所有信息。