JavaFX:tableView.getSelectionModel().select(0)无法工作的任何可能原因?
能否列出调用tableView.getSelectionModel.select0的可能原因;在名为TableView的javafx.scene.control.TableView上无法工作 对于这种情况,假设我使用cellSelectionEnabledfalse和SelectionMode.SINGLE,tableView.getItems返回一个非空的FXCollections.ObservalArrayList 更确切地说,我正在寻找可能的答案,为什么会有调用tableView.getSelectionModel.select0;从selectTableViewRow0这样的方法中执行操作将不起作用:JavaFX:tableView.getSelectionModel().select(0)无法工作的任何可能原因?,java,javafx-2,javafx,tableview,selectionmodel,Java,Javafx 2,Javafx,Tableview,Selectionmodel,能否列出调用tableView.getSelectionModel.select0的可能原因;在名为TableView的javafx.scene.control.TableView上无法工作 对于这种情况,假设我使用cellSelectionEnabledfalse和SelectionMode.SINGLE,tableView.getItems返回一个非空的FXCollections.ObservalArrayList 更确切地说,我正在寻找可能的答案,为什么会有调用tableView.getS
private void selectTableViewRow0(){
tableView.getSelectionModel().select(0);
}
有什么建议吗,伙计们
编辑:
如下面的注释所述,调用tableView.getSelectionModel.isSelected0;返回true。我猜我可以使用反射来调用TableView中突出显示所选行的代码。问题是我似乎无法找出应该调用TableView代码的哪一部分。我认为调用select0将导致在内部调用以下两条线路。但在这之后,似乎没有代码告诉TableView高亮显示所选行
updateSelectedIndex(row);
focus(row, column);
你试过了吗
Platform.runLater(new Runnable() {
public void run() {
tableView.getSelectionModel().select(0);
}
});
感谢jewelsea和jhsheets的贡献。我发现这个问题的一个原因是,当一个类似的场景开始运行时,旧场景没有被垃圾收集,旧场景中的旧表视图项将被选中。幸运的是,我发现了一个相关的bug,如果有人感兴趣,我可以讨论它。似乎与类似,但可能不同。更新您的问题,以包括完整的环境详细信息和一个。您好,我已经包括了环境详细信息。但是,我似乎无法使用ssce复制错误。这可能是一个很大的问题,但您/某人是否可以提供一个使用反射选择项目的解决方案?谢谢。我没有这样的解决办法。好的,谢谢你。一旦我的问题得到解决,我将尝试更新此帖子。我将尝试。我将在尝试后进行评论。如果您在尝试后立即调用:tableView.getSelectionModel.isSelected0会发生什么情况?结果是真的吗?可能它没有触发,因为它认为行已经被选中,并且没有触发更改事件。tableView.getSelectionModel.Clear和Select0有效吗?将重试。我将在尝试后进行注释。结果表明,tableView.getSelectionModel.isSelected0在tableView.getSelectionModel.select0之后返回true;和tableView.getSelectionModel.clearAndSelect0;。但是,选定的行不会高亮显示。我猜这与TableView的外观有关?看起来setSelectedIndex是一种受保护的方法。对不起,没有主意了。可能会提交错误报告,或者尝试使用不同的Java7版本。