【发布时间】:2014-11-01 14:34:11
【问题描述】:
我有一个问题,不知道怎么解决,网上也找不到一些线索,不过问题应该是微不足道的……
我有一个TreeView<File>,我想根据给定路径填写目录和文件列表。问题是目录被添加到树中,但无法展开,因此我无法显示里面的文件。
这是我的一些不起眼的控制器代码:
public class MainViewController implements Initializable {
@FXML // fx:id="filesTree"
private TreeView<File> filesTree;
@Override
public void initialize(URL url, ResourceBundle rb) {
File currentDir = new File("src/xslt"); // current directory
findFiles(currentDir);
}
public void findFiles(File dir) {
TreeItem<File> root = new TreeItem<>(new File("Files:"));
root.setExpanded(true);
try {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
System.out.println("directory:" + file.getCanonicalPath());
findFiles(file);
} else {
System.out.println(" file:" + file.getCanonicalPath());
root.getChildren().add(new TreeItem<>(file));
}
root.getChildren().add(new TreeItem<>(file));
}
filesTree.setRoot(root);
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的FXML 视图非常简单——只是一个AnchorPane 和一个TreeView。但如果需要,我也可以分享。
所以问题是 - 如何使目录可扩展?
我找到了setExpanded(true) 方法,但那是不同的。
【问题讨论】: