我需要這樣的文件系統的視圖。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