此方法效果如預期 - 它產生具有一個根節點和兩個子容器節點(每個具有各自的葉節點),一個JTree:的Java Swing JTree的擴展
private JComponent createSideBar()
{
final DefaultMutableTreeNode top = new DefaultMutableTreeNode("Projects");
final JTree tree = new JTree(top);
DefaultMutableTreeNode project = new DefaultMutableTreeNode("project 1");
DefaultMutableTreeNode version = new DefaultMutableTreeNode("version 1");
project.add(version);
top.add(project);
TreePath treePath = new TreePath(project.getPath());
// tree.expandPath(treePath);
project = new DefaultMutableTreeNode("project 2");
version = new DefaultMutableTreeNode("version 2");
project.add(version);
top.add(project);
return tree;
}
在這種情況下,樹開始關閉。我想先從完全展開的所有節點的應用程序,所以我開始通過增加以下內容:
tree.expandPath(treePath);
,但是當我從上面的代碼中取消註釋它,第二組的子節點不顯示即:項目2和版本2不顯示。事實上,所有隨後添加的節點都不會顯示出來。
對於它的價值,我使用的是JDK 1.5。從文檔中,我似乎看不到任何限制或爲什麼這種方法會產生這樣的不良影響......我將嘗試着看源代碼,但希望有人可能有一個好主意,是預期的行爲。我想知道是否每個後續節點「添加」以某種方式被禁止 - 但我無法想象會適用於大多數運行時用例。
感謝,
-Luther
+1,我不知道。 – 2009-06-20 04:21:34