0
我正在嘗試在RCP中學習TreeViewer。我爲此寫了一小段代碼。Tree中的所有節點都沒有擴展
public class TreeViewClass extends ViewPart {
public static final String ID = "TreeViewerDemo.treeView";
public TreeViewClass() {
// TODO Auto-generated constructor stub
}
@Override
public void createPartControl(Composite parent) {
TreeViewer treeViewer = new TreeViewer(parent, SWT.BORDER);
Tree tree = treeViewer.getTree();
TreeItem root = new TreeItem(tree, 0);
root.setText("Root Node");
TreeItem childNode1 = new TreeItem(root, 0);
childNode1.setText("Child Node 1");
TreeItem childNode2 = new TreeItem(childNode1, 0);
childNode2.setText("Child Node 2");
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
}
當我運行此代碼時,樹顯示,但只顯示根節點。當我點擊根節點(帶有箭頭圖標,這意味着它有子節點)時,該節點不顯示子節點。 後來我發現,當我將setExpanded(true)應用於節點時,它會顯示出來,否則就不會。
我的代碼中的問題在哪裏?
謝謝!
如果您使用'TreeViewer',則不應使用'TreeItem'。而是使用內容提供者和標籤提供者。如果你想用'TreeItem'使用'Tree'。將兩者混合將會產生不可預知的結果。 –
非常感謝greg!你能否提供一個使用樹和Treeitem的例子。我試圖這樣做時弄得一團糟。所以我試圖使用treeviewer。我會很感激!再次感謝! –
我認爲只是做'新樹'而不是TreeViewer是唯一的改變。如果你想讓節點擴展,你必須調用'setExpanded'。 –