当前位置: 首页 > 知识库问答 >
问题:

更改JTree中某个节点的图标?

白禄
2023-03-14

我有一个JTree,它的节点由DefaultMutableTreeNode驱动。每个节点都可以验证或不验证。首先,所有节点的图标都是相同的,但当我选择它们并按下verify按钮时,我将更改已验证节点的图标。我希望能够在每个节点上单击和写入,这样就不能使用JLabel显示图标。我编写了以下代码,但它返回NULLException。

class CustomIconRenderer extends DefaultTreeCellRenderer {
        ImageIcon defaultIcon;
        ImageIcon specialIcon;
        ImageIcon closeIcon;
        static DefaultTreeModel model;
        static myDefaultMutableTreeNode root;

        public CustomIconRenderer() 
        {
            openIcon = new ImageIcon(CustomIconRenderer.class.getResource("icons/question.png"));
            closeIcon = new ImageIcon(CustomIconRenderer.class.getResource("icons/Target-New-Logo.jpg"));
            setLeafIcon(closeIcon);
        }

        @Override
        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);
               Object nodeObj = ((DefaultMutableTreeNode)value).getUserObject();

          Check_each_nodes_are_verified_change_the_icon();
          return this;
        }
    }

    public class myDefaultMutableTreeNode extends DefaultMutableTreeNode{

        private static int id=0;
        private int nodeid;
        private int verify;
        private int depth;

    }

数百万,谢谢。

共有1个答案

郎增
2023-03-14

DefaultTreeCellRenderer具有setter,允许设置打开图标、关闭图标和叶图标。在重写的GetTreeCellRenderComponent中,在派生的渲染器类中设置这些图标,然后返回super返回的图标。GetTreeCellRenderComponent。当您在渲染之前为每个节点设置时,可以很容易地为特定节点设置一些不同的图标。

 类似资料:
  • 我想为JTree中的每个节点设置一个不同的图标,实际上我是从数据库中加载每个节点,使用“while”,我将每个图标设置为根、叶或父。这样地: 我的所有声明都是全球性的: 这是我设置节点的代码: makeNode方法如下: 在用我的节点填充treemodel之后,我将模型设置为我的JTree: 但问题是。当我尝试设置图标时。我创建了一个名为myTreeRenler的子类,我使用它: 但它没有设置我想

  • 问题内容: 我想为JTree中的每个节点设置一个不同的图标,实际上是从数据库中加载每个节点,并带有“ while”,我将每个图标设置为根,叶或父级。像这样: 我所有的声明都是全球性的: 这是我设置节点的代码: 方法makeNode是这样的: 在用节点填充treemodel之后,将模型设置为JTree: 但是问题是。当我尝试设置图标时。我创建一个名为myTreeRenderer的子类,并使用以下代码

  • 我试图将JTree节点可视化为JButton,我已经尝试使用JButton对象创建一个默认可变树节点,并将其添加到JTree中: 这些只显示带有黑色参数的错误行。 搜索网络我只发现我需要一个类,但没有一个结果显示如何使用它。 是否有一些教程可以让我找到一些示例来完成任务?

  • 我想做个散点图 它有一个不是x,y值,而是另一个改变点颜色的值 如果它的价值超过某个价值 只有我找到了 MPAndroidChart,根据y轴值在条形图中设置不同的颜色 这 但在我的例子中,有一个特殊的值对图没有影响 我能做些什么来解决这个问题? 请帮帮我

  • 问题内容: 我在创建JTree时遇到困难,该JTree允许通过将节点拖放到JTree中进行重组。看来应该比较简单。我在网上看过示例,但似乎无法在自己的代码中实现它。 例如,sun提供的这种功能允许在不同组件之间拖动到树中,但不能从树本身内部拖动。 而且我也发现了这一点,它允许您将文本拖到JTree中,但不能拖到树中。 任何参考或建议将是巨大的。谢谢 问题答案: 之前没有做过,但是谷歌快速搜索在这里

  • 我已经实现了一个TreeModel来调整存量数据模型,以便将其可视化为JTree。我遇到了一个问题,节点有多个相同的子(叶)节点。例如,考虑一个JTree,它的叶节点是Strings。每当父节点包含具有相同String值的子节点时,就会出现问题。这些叶节点的TreePath是相同的,作为Strings,equals()返回true。留档明确地调用这个: JTree及其相关类广泛使用TreePath