Associação de uma imagem com um objeto Java Tree Node
Pergunta
Eu tenho um nó de árvore. Eu quero que uma imagem seja exibida ao lado do nome do nó quando a árvore é vista. Como faço para fazer?
Solução
Crie um imageicon a partir da sua imagem
Icon imageicon = .... (Existem várias maneiras de fazer isso)
Crie uma instância do DefaultTreeCellRenderer
DefaultTreeCellRenderer renderizador = new DefaultTreeCellRenderer ();
Defina o campo do ícone da folha do renderizador
renderer.setLeaficon (ícone);
Defina o renderizador da árvore
árvore.setCellRenderer (renderizador);
Outras dicas
Você pode usar um renderizador de folhas personalizado. Substitua o método gettreeCellRenderRComponent ().
Quando você renderiza um componente.
Use um painel e coloque o texto primeiro e o ícone segue o texto.
E depois retorne o componente.
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean selected, boolean expanded, boolean leaf, int row,
boolean hasFocus) {
JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
tree, "", true, expanded, leaf, row, true);
Component com = renderer.getTreeCellRendererComponent(
tree, "", true, expanded, leaf, row, true);
l.setIcon(YOUR_IMAGE);
l.setText(value.toString());
panel.removeAll();
panel.add(this, BorderLayout.EAST);
panel.add(j);
return panel;
}