我正在使用Java 8u51。这真的很奇怪。我通过Observer模式更新ListCells,执行以下操作:
@Override
public void update(Observable o, Object arg) {
cell.startEdit();
PojoSample entry = (PojoSample) o;
setName(entry.getName());
cell.commitEdit(this);
}
在解决问题时,我注释掉了Observer更新,并使用for循环迭代ListView项目(顺便说一句,这些项目持有对ListCell的引用,为方便起见),做同样的事情,这是将单元格设置为编辑,然后提交编辑。
在这两种方法中,第一项永远不会更新,而列表的其余部分无论大小如何都没有更新问题。我可以确认它正确地接收了值,并且该单元实际上保存了正确的数据;它不会像它应该那样显示。
我唯一可以更改第1项的是手动编辑它。当调用重写的startEdit()方法时,我使用自定义TextField编辑单元格,该自定义TextField成为ListCell的图形。
有没有人碰到过这个?你认为这是一个错误吗?