Ciao a tutti.
Ho un JTree a cui volevo dare un look personalizzato.
Ho esteso la classe DefaultTreeCellRenderer per far ciò. La gestione dell'icona mi riesce, la gestione del colore anche.
Quello che non mi riesce e ti impostare il bordo del nodo selezionato a quello di default.
Non ho trovato nessun metodo come per i colori, o mi sfugge?
Devo impostarlo io il bordo senza poterlo ricavare dal componente di default?
codice:
class MyTreeRenderer extends DefaultTreeCellRenderer {

    Icon casaIcon;
    Icon ufficioIcon;

    public MyTreeRenderer(Icon casaIcon, Icon ufficioIcon) {
        this.casaIcon = casaIcon;
        this.ufficioIcon = ufficioIcon;
        this.setFont(new Font("Arial", Font.PLAIN, 12));
    }

    @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);
        if (leaf && isCasa(value)) {
            setIcon(this.casaIcon);
        } else if (leaf && isUfficio(value)) {
            setIcon(this.ufficioIcon);
        }
        JLabel l = new JLabel();
        l.setIcon(getIcon());
        l.setText(getText());
        if (sel) {
            l.setBackground(this.getBackgroundSelectionColor());
            l.setForeground(this.getTextSelectionColor());
        } else {
            l.setForeground(this.getTextNonSelectionColor());
        }
        l.setOpaque(sel);
        return l;
    }
}
Cosa mi sfugge?