Binding JavaFX2:向使用表单元格绑定的TableView添加行

Binding JavaFX2:向使用表单元格绑定的TableView添加行,binding,row,javafx-2,tableview,add,Binding,Row,Javafx 2,Tableview,Add,我试图修改中概述的解决方案(感谢jKaufmann提供了这个优秀的示例),以允许向表中添加行 我引入了一个按钮,单击该按钮时,调用代码向支持该表的ObservableList添加一个额外的TableData行 新的一行出现时没有发生意外。但是,在添加了几行并使用向上/向下键在表格中滚动了几次之后,表格中的随机行开始被替换为空行 通常需要添加几行,选择一行,向下遍历列表(使用键盘)到新行,再添加几行,向下遍历到新行,再一直遍历到顶部,才能重现问题。要选择表中的一行,我单击行的边缘,以便选中该行

我试图修改中概述的解决方案(感谢jKaufmann提供了这个优秀的示例),以允许向表中添加行

我引入了一个按钮,单击该按钮时,调用代码向支持该表的ObservableList添加一个额外的TableData行

新的一行出现时没有发生意外。但是,在添加了几行并使用向上/向下键在表格中滚动了几次之后,表格中的随机行开始被替换为空行

通常需要添加几行,选择一行,向下遍历列表(使用键盘)到新行,再添加几行,向下遍历到新行,再一直遍历到顶部,才能重现问题。要选择表中的一行,我单击行的边缘,以便选中该行而不是单个单元格

源代码(本质上是jkaufmann的示例修改为包含“添加行”按钮)如下所示

在添加行后的addRow按钮的处理程序中,但这没有任何帮助 我还尝试清除支持可观察列表,并在添加每一行后将值重置为列表+新行;这也没有解决问题。

任何帮助都将不胜感激。

我也有同样的问题。删除一行后,其他一些行将被删除。如果滚动,空白行会改变。< /P> 我的解决办法是移动线路

setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
setContentDisplay(ContentDisplay.TEXT_ONLY);
到单元格的构造函数并删除该行

setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
setContentDisplay(ContentDisplay.TEXT_ONLY);
完全是

Cell.updateItem的API文档说明

-此单元格是否表示列表中的数据。如果为空,则它不表示任何域数据,而是用于呈现“空”行的单元格

对我来说,这看起来像是JavaFX中的一个bug,因为我所有的行都有域数据支持,但其中的一些行(在滚动时更改)仍然收到
updateItem()
empty=true