sclass SurfaceShowingAutoZoomedImage > JVolatileImageSurface { gettable BufferedImage image; *() { this(null) } *(BufferedImage image) { volatileMode(false); // seems it's not even faster setImage(image); } void setImage(BufferedImage image) { this.image = image; setRenderable(new FitImageInComponentRenderable(image)); } }