2016-08-11 188 views
0

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

在关于这一点,我想带它注意到表格正在更新中,列值在图像基于数据库中的值输出图像正在更新。

在更新和更新值之后,I 无法在我选择的特定行上保持选择高亮显示。

每当我选择一行时,我可以通过使用tableview.getSelectedModel.getSelectedItem()来获得选定的值,但选择不会保留在所选行上。

+0

你可以创建一个[MCVE]来演示问题吗?否则,每个人都只是盲目地猜测你在代码中做了什么,导致这种情况发生。 –

+0

@James_D:已上传视频,请检查是否有帮助。上面贴出了视频的链接。感谢名单.. – Arijit

回答

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

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