通过鼠标单击在JavaFx中选择一行tableview后,选择不会保留。
关于这一点,我想提醒一下,该表正在更新,图像中和图像的列值正在基于更新数据库中的值。
在更新期间,甚至在更新值之后,我无法在我选择的特定行上保持选择突出显示。
每当我选择一行时,我都可以使用tableview.getSelectedModel.getSelectedItem()
获取所选值,但选择不会保留在所选行上。
答案 0 :(得分:1)
您可能希望在更新所有值后以编程方式在TableView中选择一行。有关如何选择行的信息,请参阅此问题 Select row in 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);
});
答案 1 :(得分:1)
您是要删除旧项目然后再添加新项目吗? 如果你是,那可能会导致你所看到的效果。 在FX中,如果是数据更新,您只需更新项目中的属性,而无需从支持该表的ObservableList中删除项目。 但是请确保该项目是从FX线程而不是任何其他线程更新的。