直接调用JTree的方法setBackground(Color bg)应该可以的。

解决方案 »

  1.   

    刚才看错了,应该定义自己的TreeCellRenderer。
      

  2.   

    原因是这样,如果你不手动设置tree的节点图标,那么将采用默认的。而默认的图标的背景色就是白的。那么你只改了树的底色,图标的底色当然还是白的了。办法是,换一个图标,而且是一个透明底色的图标。即使你认为默认的图标很好,但为了使之底色透明,你也必须利用工具得到这个图标然后将底色搞透明。而不管怎样,只要想换图标,就必须用到TreeCellRenderer。好好察看有关它的资料,很好用的,只需实现一个方法。
      

  3.   

    你的applet树有右键菜单,拖拽功能吗?
      

  4.   

    该如何定义TreeCellRenderer呢?能说详细一点吗?
      

  5.   

    to csdn_k() 
    class TCellRender implements TreeCellRenderer {
    ……
    }
    JTree tree = new JTree(……);
    TCellRender render = new TCellRender();
    tree.setRender(cell);
    ……
    to li_yadan(布狮子) 
    在Applet中是无法实现拖拉功能的(涉及到data transfer),不过可以对自己实现一棵树利用Mouse事件做出一个假的拖拉现象,以此来讲一棵子树移动到新节点上
      

  6.   

    sorry
    一时手快 tree.setRender(cell);
    应该是
             tree.setCellRender(render);