sclass JPaintTool is Swingable { transient gettable BufferedImage image; transient ImageSurface imageSurface; transient settable Dimension defaultImageSize = sixteenToNine_p(480); void init { imageSurface if null = makeImageSurface(); if (image == null) setImage(newImage(defaultImageSize)); } visualize { init(); ret jscroll_center_borderless(imageSurface); } void setImage(BufferedImage image) { this.image = image; imageSurface.setImage(image); } swappable ImageSurface makeImageSurface() { var is = pixelatedImageSurface(); //is.setAutoZoomToDisplay(true); //is.specialPurposed = true; is.zoomable(false); is.removeAllTools(); new ImageSurfaceScribbleTool(is); ret is; } }