Asociación de una imagen con un objeto de nodo Java Tree
Pregunta
Tengo un nodo de árbol. Quiero que se muestre una imagen al lado del nombre del nodo cuando se ve el árbol. ¿Cómo puedo hacerlo?
Solución
Crea un Imageicon a partir de tu imagen
Icono de Imageicon = ....; (hay muchas maneras de hacer esto)
Cree una instancia de defaultTreeCellRenderer
DefaulttreeCellRenderer renderer = new DefaultTreeCellRenderer ();
Establezca el campo de icono de hoja del renderizador
renderer.setleAficon (icono);
Establecer el renderizador del árbol
Tree.setCellrenderer (renderizador);
Otros consejos
Puede usar un renderizador de hoja personalizado. Anular el método getTreeCellRendererComponent ().
Cuando representa un componente.
Use un panel y coloque el texto primero y el ícono folliwng el texto.
Y luego devuelve el 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;
}