gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:50:13 26 4
gpt4 key购买 nike

我有一个 JTree,它的节点是从 DefaultMutableTreeNode 驱动的。每个节点都可以验证或不验证。起初所有节点的图标都是相同的,但是当我选择它们并按下验证按钮时,我将更改已验证节点的ICON我希望能够在每个节点上单击和写入,这样我就不能使用 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;

}

万分感谢。

最佳答案

DefaultTreeCellRenderer有 setter ,允许设置打开图标、关闭图标和叶子图标。在覆盖的 getTreeCellRendererComponent 中,根据需要在派生渲染器类中设置这些图标,然后返回由 super.getTreeCellRendererComponent 返回的图标。当您在渲染之前为每个节点设置时,您可以轻松地为特定节点设置一些不同的图标。

关于java - 更改JTree中某个节点的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14192424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com