图像与Java树节点对象的关联

时间:2009-11-09 06:50:58

标签: java swing jtree treenode imageicon

我有一个Tree节点。我希望在查看树时,在节点名称旁边显示一个图像。我该怎么办?

2 个答案:

答案 0 :(得分:1)

  1. 从您的图片中创建一个ImageIcon

    ImageIcon icon = ....; (there are a number of ways to do this

  2. 创建DefaultTreeCellRenderer的实例

    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

  3. 设置渲染器的叶图标字段

    renderer.setLeafIcon(图标);

  4. 设置树的渲染器

    tree.setCellRenderer(渲染);

  5. if you can't figure it out try the demo

答案 1 :(得分:0)

您可以使用自定义叶子渲染器。 重写getTreeCEllRendererComponent()方法。

渲染组件时。

使用面板并首先放置文本,然后将文本放在文本旁边。

然后返回组件。

public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean selected, boolean expanded, boolean leaf, int row,
        boolean hasFocus) {


    JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);
    Component com = renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);
    l.setIcon(YOUR_IMAGE);
    l.setText(value.toString());



        panel.removeAll();
        panel.add(this, BorderLayout.EAST);
        panel.add(j);
        return panel;



}