我正在开发一个带有树表视图的 JavaFX 应用程序,其中的列是根据提供的数据生成的。但是,在某些情况下,当更新从后端进来时,会创建一个“幽灵行”。这是与现有行具有相同值但无法选择的附加行。如果窗口打开的时间足够长,这些幽灵行会填满其余的可见表格行(但不会创建滚动条)。
我在 Cell Value Factory 回调中添加了一些调试逻辑,但数据源仍然表明它只有 5 个条目,尽管屏幕上可见 6 个或更多。出于某种原因,它似乎只是在渲染同一行的另一个副本。
有没有人对可能导致这种情况的原因有任何想法?
谢谢。
编辑:
这是 TreeTableCell 实现中的 UpdateItem 方法:
super.updateItem(item, empty);
FlowPane flow = new FlowPane();
if (item != null && !empty && getTreeTableRow() != null)
{
Node cellGraphic = item.getGraphic();
if (cellGraphic != null
&& cellGraphic.getClass().equals(Button.class))
{
item.setAlignment(Pos.CENTER);
}
flow.getChildren().add(item);
item.prefWidthProperty().bind(flow.prefWrapLengthProperty());
flow.prefWrapLengthProperty().bind(
getTableColumn().widthProperty());
setGraphic(flow);
return;
}