Domanda

Ho un nodo della struttura. Voglio un'immagine da visualizzare accanto al nome del nodo quando l'albero è visto. Come posso fare per?

È stato utile?

Soluzione

  1. creare un ImageIcon dall'immagine

    ImageIcon icon = ....; ( ci sono un certo numero di modi per farlo )

  2. creare un'istanza di DefaultTreeCellRenderer

    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer ();

  3. impostare il campo foglia icona della renderer

    renderer.setLeafIcon (icona);

  4. impostare renderer l'albero

    tree.setCellRenderer (renderer);

se non si riesce a capirlo provare la demo

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;



}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top