Если все, что вы пытаетесь сделать, это иметь разные значки для закрытого узла, листа и открытого узла, это очень просто.
// Создать 3 иконки
приватный значок customOpenIcon = new ImageIcon ("images / my_open.gif");
иконка private customClosedIcon = new ImageIcon ("images / my_closed.gif");
приватный значок customLeafIcon = new ImageIcon ("images / my_leaf.gif");
// Предполагается, что вы создали иерархию DefaultMutableTreeNode
DefaultMutableTreeNode rootNode = new ...
...
JTree tree = новый JTree (rootNode);
DefaultTreeCellRenderer customRenderer = new DefaultTreeCellRenderer();
customRenderer.setOpenIcon(customOpenIcon);
customRenderer.setClosedIcon(customClosedIcon);
customRenderer.setLeafIcon(customLeafIcon);
tree.setCellRenderer(customRenderer );