2012-03-17 6 views
-1

このようなファイルシステムのビューが必要です。フレックス - ファイルシステムのツリーのような表示方法?

folder_name  
|_sub_folder1 
| |_file1 
| |_file2 
|_sub_folder2 
    |_file1 

あなたのコメントをください。

+1

は、このJavaサーバである - のFlexクライアントアプリケーション・ブリッジ?または(Androidのような)Javaフレームワークの上で動作するFlex(AIR)アプリケーションですか? –

答えて

1

あなたの質問には何が関係していますか?

あなたは既にこの質問をして、あなたの答えを得ました:ツリーを使用してください。さらに、構造を処理(実行)するか、メモリに格納するか、またはツリーを視覚的に表示するかどうかは指定しないでください。

NodeListがあるNodeのノードベースのツリーを作成します。各ノードの値は、ファイル名を含む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; 
     } 
    } 
} 
+0

ありがとうございましたが、このコードは正しく機能していません。これは、 "t.root.children.add(usr);行でNullPointerExceptionをスローします。親切に私に適切な解決策を返信してください。私はあなたに感謝します。 –

+0

@Muhammad:コードを更新しました。 – blackcompe

1

まず、ブラウザのFlexではファイルシステム情報にアクセスできませんが、AIRプロジェクトではファイルとディレクトリにアクセスできます。

ツリーを作成しようとしているだけの場合は、フレックスツリーコントロールがサブノードを表示するために自動的に使用する配列プロパティ "children"を使用して、独自のオブジェクトを作成するのが最も簡単です。

ので:

<mx:Tree id="treeProducts" labelField="productName" 
     dataProvider="{_productList}"> 
</mx:Tree> 

[Bindable] 
var _productList:ArrayCollection; 

とそれぞれには、あなたが_productListに入れオブジェクトを、それが必要:

tmpObject.children = new ArrayCollection(); 
関連する問題