此方法效果如预期 - 它产生具有一个根节点和两个子容器节点(每个具有各自的叶节点),一个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