您是否列出了为什么在名为tableView.getSelectionModel().select(0);
的{{1}}上拨打javafx.scene.control.TableView
无效的可能原因?
对于这种情况,假设我使用tableView
和cellSelectionEnabled(false)
,而SelectionMode.SINGLE
则返回非空tableView.getItems()
。
更确切地说,我正在寻找可能的答案为什么可能存在这样的情况:从FXCollections.observableArrayList
这样的方法调用tableView.getSelectionModel().select(0);
将不起作用:
selectTableViewRow0()
任何建议,伙计们?
修改
如下面的评论中所述,调用private void selectTableViewRow0(){
tableView.getSelectionModel().select(0);
}
将返回true。我猜我可以使用反射来调用TableView中突出显示所选行的代码。问题是我似乎无法找出应该调用的TableView代码的哪一部分。我认为调用select(0)将导致在内部调用以下两行。但之后似乎没有代码告诉TableView突出显示所选行。
tableView.getSelectionModel().isSelected(0);
答案 0 :(得分:3)
你试过吗
Platform.runLater(new Runnable() {
public void run() {
tableView.getSelectionModel().select(0);
}
});
答案 1 :(得分:-1)
感谢jewelsea和jhsheets的贡献。我找到这个问题的一个原因是,当一个类似的场景开始播放,然后旧场景不是垃圾收集时,将选择旧的表视图项(来自旧场景)。幸运的是,我发现了一个相关的错误,如果有人有兴趣我可以讨论。