1

您能否列出调用命名不起作用tableView.getSelectionModel().select(0);的可能原因?javafx.scene.control.TableViewtableView

对于这种情况,假设我正在使用cellSelectionEnabled(false)and SelectionMode.SINGLE,并tableView.getItems()返回一个非空的FXCollections.observableArrayList

更准确地说,我正在寻找可能的答案,为什么会出现tableView.getSelectionModel().select(0);从类似方法调用selectTableViewRow0()不起作用的情况:

private void selectTableViewRow0(){
    tableView.getSelectionModel().select(0);
}

有什么建议吗,伙计们?

编辑:
正如下面评论中提到的,调用tableView.getSelectionModel().isSelected(0);返回 true。我猜我可以使用反射来调用 TableView 中突出显示所选行的代码。问题是我似乎无法找出我应该调用 TableView 代码的哪一部分。我认为调用 select(0) 将导致在内部调用以下两行。但在那之后似乎没有代码告诉 TableView 突出显示选定的行。

updateSelectedIndex(row);
focus(row, column);
4

2 回答 2

3

你有没有尝试过

Platform.runLater(new Runnable() {
    public void run() {
        tableView.getSelectionModel().select(0);
    }
});
于 2013-07-31T03:02:33.773 回答
-1

感谢 Jewelsea 和 jhsheets 的贡献。我发现这个问题的一个原因是,当一个类似的场景开始发挥作用时,旧场景没有被垃圾收集,旧的表视图项(来自旧场景)将被选中。幸运的是,我发现了一个相关的错误,如果有人感兴趣,我可以讨论。

于 2013-11-16T13:20:56.080 回答