【问题标题】:JTree component in java swingjava swing中的JTree组件
【发布时间】:2010-02-24 16:01:36
【问题描述】:

如何在 Swing 的JTree 组件中更改节点和根的图标?

【问题讨论】:

    标签: swing icons jtree


    【解决方案1】:

    使用DefaultTreeCellRenderer 使用setClosedIconsetOpenIconsetLeafIcon

    复制自How to Use Trees:

    ImageIcon leafIcon = createImageIcon("images/middle.gif");
    if (leafIcon != null) {
        DefaultTreeCellRenderer renderer = 
        new DefaultTreeCellRenderer();
        renderer.setLeafIcon(leafIcon);
        tree.setCellRenderer(renderer);
    }
    

    【讨论】:

      【解决方案2】:

      Sun 在 JTree 上的 Tutorial 有一节介绍如何继承 TreeCellRenderer 以获取 JTree 中的节点和文本。

      【讨论】:

        【解决方案3】:

        如果您只想为关闭节点、叶节点和打开节点设置不同的图标,那非常简单。

        //创建3个图标 私人图标 customOpenIcon = new ImageIcon("images/my_open.gif"); 私人图标 customClosedIcon = new ImageIcon("images/my_closed.gif"); 私有图标 customLeafIcon = new ImageIcon("images/my_leaf.gif");

        //假设您创建了 DefaultMutableTreeNode 层次结构 DefaultMutableTreeNode rootNode = new... ... JTree 树 = new JTree(rootNode );

        DefaultTreeCellRenderer customRenderer = new DefaultTreeCellRenderer();
        customRenderer.setOpenIcon(customOpenIcon);
        customRenderer.setClosedIcon(customClosedIcon);
        customRenderer.setLeafIcon(customLeafIcon);
        tree.setCellRenderer(customRenderer );
        

        【讨论】:

        • 我尝试使用 DefautTreeCellRenderer,但我的班级无法识别它,我使用的是 eclipse 3.2
        猜你喜欢
        • 1970-01-01
        • 2011-05-29
        • 1970-01-01
        • 2011-06-04
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-28
        相关资源
        最近更新 更多