How can I change my node’s appearance?

Apache NetBeans Wiki Index

Note: These pages are being reviewed.

It’s pretty simple to change the font color, style or weight for your node’s label. Simply override getHtmlDisplayName and provide some HTML in your return value. (An example can be found in this tutorial.) Here is another example:

public class MovieNode extends AbstractNode {

    private Movie movie;

    public MovieNode(Movie key) {
        super(Children.LEAF, Lookups.fixed(new Object[]{key}));
        this.movie = key;
        setName(key.getTitle());
        setDisplayName(key.getTitle());
        getHandle();
        setIconBaseWithExtension("org/nb/marilyn/pics/marilyn.gif");
    }

    @Override
    public String getHtmlDisplayName() {
        return "*" + this.getDisplayName() + "*";
    }

}

The javadoc for the HtmlRenderer class explains what subset of HTML is supported. You can also change the icon’s node by overriding various methods such as getIcon(int type) or {getOpenedIcon()}.

It’s also possible, but far more difficult, to control other aspects of the node’s appearance; for example, drawing a box around the node or changing its background color. To do this you must create or modify the explorer view in which the node is rendered. Fabrizio Giudici posted code that illustrates this on the dev@openide list.