Como colocar icones na JTree

2 respostas
S

E ai pessoal,

Estou com um probleminha como faço para colocar icones nos submenus da JTree ?

Bom eu ate consegui colocar mas quando eu coloquei para um submenu todos os itens desse submenu ficaram como o mesmo icone.

Bom se não fui bem claro eu gostaria de fazer um menu em arvore tipo aquele que o netbeans tem na Tools< Options?

Alguem com alguma sugestao?

2 Respostas

L

http://www.javaalmanac.com/cgi-bin/search/find.pl?words=jtree

H

Dê uma olhada na classe TreeCellRenderer, a sua JTree se baseará nela para colocar os icones.
Olha um exemplo:

public class MeuCellRenderer extends DefaultTreeCellRenderer &#123;

	private static ImageIcon icon1 = new ImageIcon&#40;getImage&#40;"imagem1.gif"&#41;&#41;;
	// Mais imagens ...

	private static final String diretorioImg = "image/";

	private static URL getImage&#40;String file&#41;&#123;
		return PaPPlayerRenderer.class
			.getClassLoader&#40;&#41;.getResource&#40;diretorioImg+file&#41;;
	&#125;
	
	public Component getTreeCellRendererComponent&#40;
			JTree tree,Object value,boolean sel,boolean expanded,
			boolean leaf,int row,boolean hasFocus&#41; &#123;
		
		super.getTreeCellRendererComponent&#40;tree, value, sel,
				expanded, leaf, row, hasFocus&#41;;
		DefaultMutableTreeNode dmtn = &#40;DefaultMutableTreeNode&#41;value;
		
		
		if&#40;dmtn.isRoot&#40;&#41;&#41;&#123;
			setIcon&#40;icon1&#41;;
		&#125; else if&#40;dmtn.getUserObject&#40;&#41;.equals&#40;"Node qualquer"&#41;&#41;&#123;
			setIcon&#40;icon2&#41;;
		&#125; else if&#40;dmtn instanceof MeuTreeNode&#41;&#123;
			setText&#40;icon3&#41;;
		&#125; else &#123;
			// Faça qualquer teste que precisar para escolher
			// a imagem que vai aparecer
		&#125;
		
		return this;
	&#125;
&#125;
Criado 20 de dezembro de 2004
Ultima resposta 21 de dez. de 2004
Respostas 2
Participantes 3