希望能实现类似QQ的那种分类树形结构,树叶以图片显示。如何实现?

解决方案 »

  1.   

    public class JTreeCellRenderer extends DefaultTreeCellRenderer{    public JTreeCellRenderer() {
        }
        public Component getTreeCellRendererComponent(
                JTree tree,
                Object value,
                boolean sel,
                boolean expanded,
                boolean leaf,
                int row,
                boolean hasFocus) {        super.getTreeCellRendererComponent(
                    tree, value, sel,
                    expanded, leaf, row,
                    hasFocus);        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
            JTreeBean jtb = (JTreeBean)node.getUserObject();
                setIcon(jtb.getIcon());
                setText(jtb.getString());
                setTextNonSelectionColor(jtb.getColor());
            return this;
        }    protected boolean isTutorialBook(Object value) {
            DefaultMutableTreeNode node =
                    (DefaultMutableTreeNode) value;        return false;
        }
    }---------------------------------------------------------------------
    填充节点属性
    import java.util.List;
    import java.awt.Color;
    import javax.swing.ImageIcon;
    import java.util.ArrayList;
    import javax.swing.JComboBox;
    import javax.swing.JComponent;public class JTreeBean {
        private String strNode;
        private ImageIcon iconNode;
        private Color strColor;
           public JTreeBean(String str, ImageIcon icon, Color color) {
            strNode = str;
            iconNode = icon;
            strColor = color;
        }
        public JTreeBean(String str, ImageIcon icon) {
            strNode = str;
            iconNode = icon;
        }
        public JTreeBean(String str) {
            strNode = str;
        }    public String getString() {
            return strNode;
        }
        public void setString(String strNode) {
            this.strNode = strNode;
        }    public void setJComponent(JComponent jcp) {
            this.jcp = jcp;
        }
        public ImageIcon getIcon() {
            return iconNode;
        }
        public void setIcon(ImageIcon iconNode) {
            this.iconNode = iconNode;
        }
        public Color getColor() {
            return strColor;
        }
        public void setColor(Color strColor) {
            this.strColor = strColor;
        }}------------------------------------------------------
    前台界面文件
        JTreeBean aa = new JTreeBean("aaaaa", new ImageIcon("123.gif"), Color.RED);
        JTreeBean bb = new JTreeBean("bbbbbb", new ImageIcon("456.gif"), Color.BLUE);
        JTreeBean cc = new JTreeBean("cccccc", new ImageIcon("789.gif"), Color.GREEN);    DefaultMutableTreeNode treeNodeaa = new DefaultMutableTreeNode(aa);
        DefaultMutableTreeNode treeNodebb = new DefaultMutableTreeNode(bb);
        DefaultMutableTreeNode treeNodecc = new DefaultMutableTreeNode(cc);
        
        JTree jt = new JTree(treeNodeaa);
        JTreeCellRenderer jtr = new JTreeCellRenderer();
        jt.setCellRenderer(jtr);