1

我使用 JTree 编写了一个文件树,现在我正在尝试使其更高效。我正在尝试实现延迟加载,但我无法让节点识别它们是哪个文件以扩展下一层。我试过让他们根据他们级别的文件名列表检查他们的名字,但由于某种原因这不起作用。从长远来看,这无论如何都行不通。我也尝试将文件本身设置为节点内容,但它仍然无法将其识别为文件。

我确定我错过了一些简单的东西,但我不知道它会是什么。我一直在四处寻找,并没有找到任何东西。谁能帮我解决这个问题?

4

2 回答 2

1

DefaultMutableTreeNode允许您关联任意“用户对象”,在这种情况下,它可能是File它所代表的。例如:

File file = new File("data.txt");
DefaultMutableTreeNode node = new DefaultMutableTreeNode(file);

然后,您只需将 a 添加TreeSelectionListenerJTree并询问所选内容DefaultMutableTreeNode以获取其File并根据它是代表目录还是文件采取适当的措施。

于 2011-11-16T22:59:15.430 回答
1

而不是使用 TreeWillExpandListener 实现延迟树加载。只需使用自定义树模型,只在必要时检查文件。可以在此处找到执行此操作的现有 FileTreeModel 的一个很好的示例

于 2011-11-16T23:04:40.823 回答