我正在尝试GWT应用程序。我有一棵树,有很多树项目。我想检索树中所选项目的索引。我看到Tree类没有像getSelectedElementIndex()这样的方法。有没有解决方法呢?
答案 0 :(得分:1)
您可以通过SelectionHandler
注册addSelectionHandler
。选择项目时给出的事件将返回选定的TreeItem
对象。
同样Tree
有一个方法getSelectedItem()
,它会返回TreeItem
。类TreeItem
有一个方法getChildIndex
,它接受TreeItem
并返回索引。此外,使用item.getParentItem().getChildIndex(item)
,您应该获得该项目的索引。
答案 1 :(得分:0)
您可以编写自己的函数来执行此操作:
int getTreeItemIndex(Tree tree, TreeItem item)
{
int count = tree.getItemCount();
for (int i=0;i<count;i++)
{
TreeItem test = tree.getItem(i);
if (test == item)
{
return i;
}
}
return -1;
}
这只会搜索Tree对象的直接子节点,如果找不到则返回-1。
答案 2 :(得分:-1)
渲染每个树项时,可以将索引存储为setLayoutData。如果需要,可以从getLayoutData获取。任何对象都可以存储在这里。我希望这能解决你的问题。