在 JavaFX 中获取选定的树节点项完整路径
Get selected tree node item full path in JavaFX
我有一个 TreeView 组件,它的内容如下:
- 根
- item1
- item2
- 文件夹1
- 文件夹2
- item101
- item3
我希望它在选择时 return 路径 /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);
你可以这样做:
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();
我有一个 TreeView 组件,它的内容如下:
- 根
- item1
- item2
- 文件夹1
- 文件夹2
- item101
- 文件夹2
- item3
我希望它在选择时 return 路径 /root/Folder1/Folder2/item101 以便我可以将其放入下载命令中。
下面是我到目前为止制作的示例(出于测试目的而制作的很差),问题是它不能在文件夹中工作,只能在根目录中工作。我正在为 Java.
使用 CloudRail APIList<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);
你可以这样做:
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();