JTreeの拡張スイング - それは、ルートノードと2つのつの子容器ノード(各リーフノードとそれぞれ)とのJTreeの作成:この場合Javaは予想通り、この方法が機能
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とバージョン2は表示されません。実際には、その後に追加されるすべてのノードは決して表示されません。
私はJDK 1.5を使用しています。ドキュメントから、私は何の制限も見えていないようです。なぜこのメソッドがそのような悪影響を与えるのか...私はソースを見てみるつもりですが、誰かが良いアイディアを持っていると思っていました。期待される動作です。後続の各ノードの「追加」がどうにかして何らかの形で禁止されているのかどうか疑問に思っていますが、ほとんどのランタイムユースケースではうまくいくとは思いません。
おかげで、
-luther
+1、私はそれを知らなかった。 –