在JavaFx中通过鼠标单击选择表视图的一行后,所选内容将不保留。
关于这一点,我想让它注意到表正在更新,In Images和Out 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);
});