用DefaultMutableTreeNode new 了十几个对象做成一个tree,如何在这些对象的前面加图标???

解决方案 »

  1.   

    DefaultMutableTreeNode 自己是不能直接设置展示器的。
    可以通过自己实现tree的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); 
                
                //这里可以根据value或者其他数据判断需要什么样的图标
                ImageIcon icon = UIUtil.getImage("path/xxxx.gif");//这里是一个自己写的工具类,用于从类路径中加载图标。 
                  label.setIcon(icon); // 
                
                return label; 
            } 
        }