在 JavaFX 中获取所选树节点项的完整路径

Kni*_*ood 2 treeview javafx javafx-2 cloudrail

我有一个TreeView组件和它的内容是这样的:

    • 项目 1
    • 项目 2
    • 文件夹 1
      • 文件夹 2
        • item101
    • 第 3 项

我希望它在选择时返回路径 /root/Folder1/Folder2/item101 以便我可以将其放入下载命令中。

下面是我到目前为止制定的示例(出于测试目的而制作的很差),问题是它在文件夹内不起作用,只能在根目录中运行。我正在使用适用于 Java 的CloudRail API。

List<CloudMetaData> data = cs.getChildren("/");
String path="";
String selectedName = treeView.getSelectionModel().getSelectedItem().getValue() ;
            System.out.println(selectedName); 
for (CloudMetaData cmd : data) {
                cache.put(cmd.getPath(), cmd);
                TreeItem<String> item = new TreeItem<>(cmd.getName());
                             if(selectedName.equals(cmd.getName())){
                                 path=cmd.getPath();
                             }
}
System.out.println(path);
Run Code Online (Sandbox Code Playgroud)

Jam*_*s_D 5

你可以做:

StringBuilder pathBuilder = new StringBuilder();
for (TreeItem<String> item = treeView.getSelectionModel().getSelectedItem();
    item != null ; item = item.getParent()) {

    pathBuilder.insert(0, item.getValue());
    pathBuilder.insert(0, "/");
}
String path = pathBuilder.toString();
Run Code Online (Sandbox Code Playgroud)