JavaFx TableView行丢失选择高亮



在JavaFx中通过鼠标单击选择表视图的一行后,所选内容将不保留。

关于这一点,我想让它注意到表正在更新,In ImagesOut Images的列值正在根据数据库中的值更新。

在更新期间,甚至在更新值之后,我无法将选择高亮显示在我选择的特定行上。

无论何时我选择一行,我都可以通过使用tableview.getSelectedModel.getSelectedItem()获得所选值,但所选值不会保留在所选行上。

您是否删除了旧条目然后添加了新条目?如果你是,那可能会导致你所看到的效果。在FX中,在数据更新的情况下,您可以只更新项中的属性,而不需要从支持表的ObservableList中删除项。但是,要确保项目是从FX线程更新的,而不是从其他线程更新的。

你可能想在所有的值被更新后在TableView中以编程方式选择一行。请参阅如何选择行。
在Javafx Tableview中选择行

下面是一个例子,你可以把它应用到你的情况。

tableView.getSelectionModel().selectedIndexProperty().addListener(e->{
    int selectedRow = tableView.getSelectionModel().getSelectedIndex();
    //... do all the updating and all that fun stuff.
    tableView.requestFocus();
    tableView.getSelectionModel().select(selectedRow);
    tableView.getFocusModel().focus(selectedRow);
}); 

最新更新