Dê uma olhada na classe TreeCellRenderer, a sua JTree se baseará nela para colocar os icones.
Olha um exemplo:
publicclassMeuCellRendererextendsDefaultTreeCellRenderer{privatestaticImageIconicon1=newImageIcon(getImage("imagem1.gif"));// Mais imagens ...privatestaticfinalStringdiretorioImg="image/";privatestaticURLgetImage(Stringfile){returnPaPPlayerRenderer.class.getClassLoader().getResource(diretorioImg+file);}publicComponentgetTreeCellRendererComponent(JTreetree,Objectvalue,booleansel,booleanexpanded,booleanleaf,introw,booleanhasFocus){super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);DefaultMutableTreeNodedmtn=(DefaultMutableTreeNode)value;if(dmtn.isRoot()){setIcon(icon1);}elseif(dmtn.getUserObject().equals("Node qualquer")){setIcon(icon2);}elseif(dmtninstanceofMeuTreeNode){setText(icon3);}else{// Faça qualquer teste que precisar para escolher// a imagem que vai aparecer}returnthis;}}