2011-10-29 13 views
0

次のコードで作成されたツリー構造を表示するのに問題があります。私は、ツリーボックスがハンドルがhPanLeftであるペインの内部を満たすようにしたい。しかし、正規化されたユニットを使用すると、ツリー構造のPositionプロパティのNaNとInfが取得されます。私は何が間違っているのか分からない。MATLABのボックス内にツリー構造を表示

function example 
    import javax.swing.* 
    import javax.swing.tree.*; 
    f = figure; 
    hPanRight = uipanel('Parent',f,'Units','normalized','Position',... 
     [0.5 0 0.5 0.5]); 
    hPanLeft = uipanel('Parent',f,'Units','normalized','Position',... 
     [0 0.5 0.5 0.5]); 
    [tree, container]= uitree('v0'); 
    set(container,'Parent',hPanLeft); 
    set(tree, 'Units', 'normalized'); 
    set(tree,'Position',[0 0 1 1]); 
    get(tree,'Position'), 
    root = uitreenode('v0','root','MAIN',[],false); 
    Nodo1 = uitreenode('v0','Nodo1','LEAF 1',[],true); 
    Nodo2 = uitreenode('v0','Nodo2','LEAF 2',[],true); 
    Nodo3 = uitreenode('v0','Nodo3','LEAF 3',[],true); 
    root.add(Nodo1); 
    root.add(Nodo2); 
    root.add(Nodo3); 
    treeModel = DefaultTreeModel(root); 
    tree.setModel(treeModel); 
    jtree = handle(tree.getTree,'CallbackProperties'); 
    tree.setSelectedNode(root); 
end 
+0

@Amro:ありがとうございました。 – julian

答えて

1

あなたは、コンテナではないツリーオブジェクトハンドルの位置プロパティを設定したい:

[tree,container] = uitree('v0'); 
set(container, 'Parent',hPanLeft); 
set(container, 'Units','normalized', 'Position',[0 0 1 1]); 

screenshot

だけUITREEが文書化されていない機能であることを覚えておいてください。このコンポーネントのseries of articlesをお読みください。

+0

ありがとうございました。私はコンテナの代わりにツリーのサイズを変更しようとしていました。ツリーが完全に拡張された(つまり、各ノードとリードを選択せず​​に最初に作成されたときに全体の構造を参照する)ことを確認するためのツリープロパティがありますか? – julian

+1

@jpeji:EXPAND関数を呼び出す必要があります。あなたの例では、ルートノードを次のように拡張することができます: 'tree.expand(root);' – Amro

+0

ありがとうございました。 – julian

関連する問題