@Override protected PaintContext getPaintContext() { //the paint context returned will have a few dummy values. The //implementation of doPaint doesn't bother with the "decode" methods //but calculates where to paint the circles manually. As such, we //only need to indicate in our PaintContext that we don't want this //to ever be cached return new PaintContext( new Insets(1, 0, 1, 0), new Dimension(38, 7), false, CacheMode.NO_CACHING, 1, 1); }