全部展开很简单,初始化完后extendeall就可以了。
不同的节点用不同的颜色,你只好自己编一个类了,不过也不复杂,我做过类似的。

解决方案 »

  1.   

    import javax.swing.*;
    import javax.swing.tree.*;
    public class MyTreeCellRenderer extends DefaultTreeCellRenderer { 
      public Component getTreeCellRendererComponent(
                                JTree tree,
                                Object value,
                                boolean selected,
                                boolean expanded,
                                boolean leaf,
                                int row,
                               boolean hasFocus) {
    super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
         if(条件){
                         setForeground(Color.blue);
                      }
                  }
    }
      

  2.   

    是 JTree tree;tree.extendall 吗????
      

  3.   

    类似这样:tree.expandPath(new TreePath(TreeModel.getPathToRoot(node)));
      

  4.   

    tree.expandPath(ThreePath)和tree.expandRow(int)只能展开最近一层的节点。并不能展开更深层次的节点。也就是说不能这两个函数本身不能实现全部展开的功能。
    我写了个比较笨的办法,但确实管用,我自己现在也这么用的:
      // 把树全部展开
      private void treeExpandAll(JTree tree, int c) {
        for(int i=0;i<c;i++) {
          tree.expandRow(i);
        }
      }
      //其中c为树的节点个数