2011-10-29 43 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

謝謝你的回答。我試圖調整樹而不是容器。是否有一些tree屬性的函數可以查看完全展開的樹(即,在首次創建時無需選擇每個節點和主鍵就可以看到整體結構)? – julian

+1

@jpeji:你必須調用EXPAND函數。在你的例子中,你可以擴展根節點爲:'tree.expand(root);' – Amro

+0

謝謝。 – julian