JavaFx TableView行丢失选择突出显示

时间:2016-08-11 13:44:29

标签: java javafx

通过鼠标单击在JavaFx中选择一行tableview后,选择不会保留。

关于这一点,我想提醒一下,该表正在更新,图像中图像的列值正在基于更新数据库中的值。

在更新期间,甚至在更新值之后,我无法在我选择的特定行上保持选择突出显示。

每当我选择一行时,我都可以使用tableview.getSelectedModel.getSelectedItem()获取所选值,但选择不会保留在所选行上。

2 个答案:

答案 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线程而不是任何其他线程更新的。