在TreeView中设置选定的TreeItem
我有一个位于GridPane内的TreeView。 某个function要求用户选择TreeItem并单击屏幕上的按钮。 完成与按钮关联的function后,我希望焦点返回到先前在TreeView中选择的TreeItem。
在按钮操作结束时,我有:
TreeItem selectedItem = [TreeItem that was last selected]
如何将焦点重新放回TreeView并突出显示selectedItem
?
TreeView或TreeItem都没有我可以使用的setSelected
方法。
要选择一个项目:
TreeView treeView = ... ; // initialize this TreeItem treeItem = ... ; // initialize this, too MultipleSelectionModel msm = treeView.getSelectionModel(); // This line is the not-so-clearly documented magic. int row = treeView.getRow( treeItem ); // Now the row can be selected. msm.select( row );
也就是说,从treeView
获取treeItem
的行 ,然后将该行传递给treeView
的选择模型。
除此之外,可以改进TreeView
API以委托单个树项:
treeView.select( treeItem );
不幸的是,不存在这样的方法。
我认为TreeView.getSelectionModel()是你的朋友。
它提供:
- getSelectedItem和
- setSelectedItem