本文介绍了如何在JavaFX TreeView中仅显示文件名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我已经弄清楚了如何获取所有文件和目录并将它们添加到树形视图中,但是它向我展示了完整的文件路径:C/user/file.txt我只想要文件或文件夹名称,而不是路径

So i have figured out how to get all the files and directories and add them to the treeview but it shows me the complete file path: C/user/file.txt i just want the file or folder name and not the path.

创建列表的代码如下:

private TreeItem<File> buildFileSys(File dir, TreeItem<File> parent){
    TreeItem<File> root = new TreeItem<>(dir);
    root.setExpanded(false);
    File[] files = dir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            buildFileSys(file,root);
        } else {
            root.getChildren().add(new TreeItem<>(file));
        }

    }
    if(parent==null){
        return root;
    } else {
        parent.getChildren().add(root);
    }
    return null;
}

然后我取回返回的TreeItem并执行treeview.setroot(treeItem< File> obj);

I then take the returned TreeItem and do treeview.setroot(treeItem< File> obj);

任何帮助将不胜感激.

推荐答案

使用自定义cellFactory确定项目在TreeView中的显示方式:

Use a custom cellFactory to determine, how the items are shown in the TreeView:

treeView.setCellFactory(new Callback<TreeView<File>, TreeCell<File>>() {

    public TreeCell<File> call(TreeView<File> tv) {
        return new TreeCell<File>() {

            @Override
            protected void updateItem(File item, boolean empty) {
                super.updateItem(item, empty);

                setText((empty || item == null) ? "" : item.getName());
            }

        };
    }
});

这篇关于如何在JavaFX TreeView中仅显示文件名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 13:38