如何在JTree的各节点前面加图标,??

解决方案 »

  1.   

    当然可以,通过实现自己的Renderer对象处理,如下是个简单的例子,然后再JTree的示例中设置即可
    tree.setCellRenderer(myTreeCellRender);示意代码:
    class MyTreeCellRender extends DefaultTreeCellRenderer {        private static final long serialVersionUID = 7173353751862932053L;        public MyTreeCellRender() {        }        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
                boolean leaf, int row, boolean hasFocus) {
                JLabel label = (JLabel)super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
                ImageIcon icon = UIUtil.getImage("path/xxxx.gif");//这里是一个自己写的工具类,用于从类路径中加载图标。
                label.setIcon(icon); //
                
                return label;
            }
        }
      

  2.   

    补充一下,可以在
    ImageIcon icon = UIUtil.getImage("path/xxxx.gif");
    这一句之前,根据value或者其他数据判断需要什么样的图标,或者其他什么特殊处理。另外这里我仅仅放了JLabel对象,其实可以放其他任意的可见对象。