我有一个带有列的Java FX TableView。此列预先填充了数据库中的值。当我单击表格上的单元格时,会显示列表视图,我可以通过从列表中选择值来更新表格单元格和数据库。
在列表视图出现之前,我设置列表的选定值以匹配现有表格单元格的值,如下所示
listView.getSelectionModel().select(this.getItem());
当列表视图打开时,所选项目对应于表格的单元格值。
我有一个onchangelistener附加到listview的selectedItemProperty。
从此列表视图中,如果我选择新值,当选择更改时,数据库会更新,表格单元格将使用新值更新。
如果数据库更新出现问题,列表视图的所选ItemProperty仍会保留新选择的值。
我尝试使用
重置它listView.getSelectionModel().select(this.getItem());
但是这并没有重置selectedItemProperty值。
因此,如果再次单击同一单元格,则列表将突出显示先前选定的值(即由于数据库失败而未更新的值)表格单元格和列表视图中的选定值不同。 / p>
我如何克服这个问题?