}
private MutableTreeNode createCompoundPainterDemos() {
DefaultMutableTreeNode node = createInfoNode("Compound Painter Gradient Demos", null);
MattePainter mp = new MattePainter(Color.GREEN);
PinstripePainter pp = new PinstripePainter(Color.BLUE);
CompoundPainter<Object> cp = new CompoundPainter<Object>(mp, pp);
node.add(createInfoNode("panel w/ blue pinstripe fg, green matte bg", cp));
mp = new MattePainter(Color.GREEN);
RectanglePainter rp = new RectanglePainter(new Insets(20, 20, 20, 20), 50,
50, 10, 10, true, Color.RED, 5, Color.RED.darker());
pp = new PinstripePainter(Color.BLUE);
cp = new CompoundPainter<Object>(mp, rp, pp);
node.add(createInfoNode("panel, blue stripe fg, green bg, red rect comp", cp));
rp = new RectanglePainter(20, 20, 5, Color.BLUE);
TextPainter tp = new TextPainter("Some Text");
cp = new CompoundPainter<Object>(rp, tp);
node.add(createInfoNode("text on blue", cp));
mp = new MattePainter(Color.BLACK);
tp = new TextPainter("Neon");
tp.setFont(new Font("SansSerif", Font.BOLD, 100));
tp.setFillPaint(Color.BLACK);
NeonBorderEffect effect = new NeonBorderEffect(Color.BLACK, Color.RED.brighter(), 10);
effect.setBorderPosition(NeonBorderEffect.BorderPosition.Centered);
tp.setAreaEffects(effect);
cp = new CompoundPainter<Object>(mp, tp);
node.add(createInfoNode("A Cool Logo", cp));
mp = new MattePainter(Color.GRAY);
ShapePainter sp = new ShapePainter(
ShapeUtils.generatePolygon(30, 50, 45, true), Color.RED);
sp.setStyle(ShapePainter.Style.FILLED);
sp.setBorderPaint(Color.BLUE);
ShadowPathEffect starShadow = new ShadowPathEffect();