Ola pessoal,
tenho a seguinte necessidade:
listar vários equipamentos, esses equipamentos são de vários tipos e cada tipo de equipamento possui um ícone/imagem especifica, eu estou utilizando o jTree para listar os equipamentos…
mas n encontro opções para alterar a imagem/ícone de cada equipamento q eu coloco na lista.
Eu preciso colocar uma imagem/ícone diferente para cada folha colocada no jtree.
Alguém tem alguma idéia d como fazer isso??
Você precisa fazer um renderer para sua árvore. Esse renderer abaixo recebe um map de classes associadas a ícones. Quando o nó da árvore é daquela classe, o ícone muda. Se o nó não estiver na lista, o ícone padrão é usado. Adapte para suas necessidades:
[code]class JEditionPanelTreeRenderer 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 = new ImageIcon(getClass().getResource(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) {
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
Icon icon = icons.get(value.getClass());
if (icon != null)
renderer.setIcon(icon);
return renderer;
}
}[/code]
Para usar a classe, faça como no exemplo abaixo:
treeRenderer = new JEditionPanelTreeRenderer();
treeRenderer.setIcon(String.class, "stringIcon.png");
treeRenderer.setIcon(Integer.class, "integerIcon.png");
treeRenderer.setIcon(Double.class, "doubleIcon.png");
suaTree.setCellRenderer(treeRenderer);
cara a principio tem algo la mesmo…
vou dar uma olhada!!!
c surgir alguma duvida eu posto!!!
Obrigado getandset por responder!!!
Obrigado ai pessoal encontrei um topico q mostra bem essa opação…
http://www.guj.com.br/posts/list/22678.java
valeu, to gatinhando no java, mas espero um dia ajudar vcs!!!