Associazione di un'immagine con un albero oggetto nodo Java
Domanda
Ho un nodo della struttura. Voglio un'immagine da visualizzare accanto al nome del nodo quando l'albero è visto. Come posso fare per?
Soluzione
-
creare un ImageIcon dall'immagine
ImageIcon icon = ....; ( ci sono un certo numero di modi per farlo )
-
creare un'istanza di DefaultTreeCellRenderer
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer ();
-
impostare il campo foglia icona della renderer
renderer.setLeafIcon (icona);
-
impostare renderer l'albero
tree.setCellRenderer (renderer);
Altri suggerimenti
È possibile utilizzare un renderer foglia personalizzato. Eseguire l'override del metodo di getTreeCEllRendererComponent ().
Quando si esegue il rendering di un componente.
Usa un pannello e mettere il testo prima e l'icona folliwng il testo.
E poi restituire il 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;
}