每this个帖子,我正在尝试执行以下操作...(为了讨论而简化)。
TreeItem<Step> item = new TreeItem<>(step);
parent.getChildren().add(0, item);
int row = treeView.getRow(item); //row here is -1?
这样做的原因是我试图在树中选择添加项目的绝对位置...
TreeTableViewSelectionModel<Step> msm = treeView.getSelectionModel();
msm.select(row);
所以,第一个孩子没有被选中。但是,这适用于所有添加的Tree项,除了任何父项的第一个子项。以下TreeItems具有正确的行号并已正确选择。不明白为什么这个职位不正确。另一件奇怪的事情是我试过以下......
if (row == -1)
{
TreeItem<Step> parent = newStep.getParent(); //First parent at 0
row = treeView.getRow(parent) + 1; //Now row = 1
}
msm.select(row);
父TreeItem是STILL而不是子项。同样,所有这些在添加第一个孩子后都有效。任何帮助将不胜感激。
编辑:经过进一步测试后,似乎技术上选择了该项目。也就是说应用程序的行为好像选择了正确的项目,但是父TreeItem仍然在图形上似乎在TreeView中被选中(即它被突出显示)。希望这是有道理的。