我需要这样的文件系统的视图。Flex - 如何显示树状文件系统的视图?
folder_name
|_sub_folder1
| |_file1
| |_file2
|_sub_folder2
|_file1
请给出您的意见。
我需要这样的文件系统的视图。Flex - 如何显示树状文件系统的视图?
folder_name
|_sub_folder1
| |_file1
| |_file2
|_sub_folder2
|_file1
请给出您的意见。
Flex与你的问题有什么关系?
你已经问过这个问题,并得到你的答案:使用一棵树。此外,您不会说是否要处理结构(通过它运行),将其存储在内存中,还是要显示树状结构。
如果将它放入内存中,请创建一个基于节点的树,其中每个Node
的List
的值为Node
s。每个节点的值是包含文件名的String
。下面是一个例子。我建议提出一些更有用的东西。您可以使用JTree API或DOM API,但我建议从头开始创建一个树,因为它的内存足迹要小得多。
import java.util.ArrayList;
import java.util.List;
public class TreeTest {
public static void main(String[] args) {
Tree<String> t = new Tree<>();
Tree.Node<String> usr = new Tree.Node<>("/usr");
Tree.Node<String> home = new Tree.Node<>("/home");
Tree.Node<String> share = new Tree.Node<>("/share");
Tree.Node<String> docs = new Tree.Node<>("/documents");
t.root = new Tree.Node<>("/");
t.root.children.add(usr);
t.root.children.add(home);
usr.children.add(share);
home.children.add(docs);
}
}
class Tree<T> {
Node<T> root;
static class Node<T> {
T file;
List<Node<T>> children = new ArrayList<>();
Node(T file) {
this.file = file;
}
}
}
谢谢你的帮助,但这段代码工作不正常。它会在“t.root.children.add(usr);”行中抛出NullPointerException异常请回答我适当的解决方案。我会很感激你。 – 2012-03-17 11:17:45
@Muhammad:我更新了代码。 – blackcompe 2012-03-17 16:05:40
首先,浏览器中的Flex不会让您访问任何文件系统信息,只有AIR项目允许您访问文件和目录。
现在,如果你只是想创建一个树,我发现最简单的方法是创建自己的对象,并使用数组属性“children”,这个数组属性将自动被flex树控件用来显示子节点。
这样:
<mx:Tree id="treeProducts" labelField="productName"
dataProvider="{_productList}">
</mx:Tree>
其中
:
[Bindable]
var _productList:ArrayCollection;
,并为每个对象,你把_productList,它需要:
tmpObject.children = new ArrayCollection();
是这样的Java服务器 - Flex客户端应用程序桥?或者它是在Java框架(如Android)上工作的Flex(AIR)应用程序? – 2012-03-17 17:48:27