criei o metodo
DefaultMutableTreeNode teste = new DefaultMutableTreeNode(“Teste”);
como faço para mudar o icone padrão desde teste?
ja vi alguns topicos mais não consegui nada. Como fazer? Teriam um ex claro? Obrigado!
criei o metodo
DefaultMutableTreeNode teste = new DefaultMutableTreeNode(“Teste”);
como faço para mudar o icone padrão desde teste?
ja vi alguns topicos mais não consegui nada. Como fazer? Teriam um ex claro? Obrigado!
Não use o DefaultMutableTreeNode. Fica 200x mais difícil de fazer uma árvore assim. No lugar, faça seu TreeModel:
http://www.guj.com.br/posts/list/37821.java#501820
Para alterar o ícone, você deve definir um TreeRenderer. Esse aqui, permite que você defina um ícone para uma classe específica, que esteja sendo representada na sua Tree:
import java.awt.Component;
import java.util.HashMap;
import java.util.Map;
import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
public class JTreeRenderer extends DefaultTreeCellRenderer
{
private Map<Class>< ? >, Icon> icons = new HashMap<Class>< ? >, Icon>();
public Icon setIcon(Class< ? > aClass, Icon icon)
{
return icons.put(aClass, icon);
}
public Icon setIcon(Class< ? > aClass, String fileName)
{
Icon icon = ImagePool.getInstance().getIcon(fileName);
if (fileName == null || icon == null)
return icons.remove(aClass);
return icons.put(aClass, icon);
}
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row,
boolean hasFocus)
{
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) super.getTreeCellRendererComponent(
tree, value, sel, expanded, leaf, row, hasFocus);
Icon icon = icons.get(value.getClass());
if (icon != null)
renderer.setIcon(icon);
return renderer;
}
}
JTreeRenderer renderer = new JTreeRenderer();
renderer.setIcon(Livro.class, "c:\livro.ico");
renderer.setIcon(Autores.class, "c:\autor.ico");
suaTree.setRenderer(renderer);