TreeView中TreeItem的第一个子节点索引错误

时间:2017-07-13 14:52:33

标签: javafx treeview javafx-8

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中被选中(即它被突出显示)。希望这是有道理的。

0 个答案:

没有答案