在JavaFX

时间:2016-12-20 23:11:16

标签: javafx treeview javafx-2 cloudrail

我有一个 TreeView 组件,其内容如下:

    • ITEM1
    • ITEM2
    • Folder1中
      • FOLDER2
        • item101
    • item3

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

以下是我到目前为止所做的示例(测试用途不佳),问题是它在文件夹内部不起作用,只在根目录中起作用。我正在使用 CloudRail API for Java。

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);

1 个答案:

答案 0 :(得分:4)

你可以这样做:

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();