please include function showImage. static ImageSurface showImage_centered(final BufferedImage img) { ret (ImageSurface) swing(func { ImageSurface is = new ImageSurface(img); JPanel panel = new JPanel(new GridBagLayout); panel.add(is); JFrame frame = showPackedFrame(new JScrollPane(panel)); frameIcon(frame, showImage_defaultIcon); return is; }); } static ImageSurface showImage_centered(final BufferedImage img, fS title) { ret setFrameTitle(showImage_centered(img), title); } static ImageSurface showImage_centered(S title, BufferedImage img) { ret showImage_centered(img, title); } static ImageSurface showImage_centered(S title, RGBImage img) { return showImage_centered(title, img.getBufferedImage()); } static ImageSurface showImage_centered(ImageSurface is, BufferedImage img) { if (is == null) ret showImage_centered(img); is.setImage(img); ret is; } // make or update the ImageSurface static ImageSurface showImage_centered(ImageSurface is, S title, BufferedImage img) { if (is == null) ret showImage_centered(title, img); is.setImage(img); setFrameTitle(is, title); ret is; } static ImageSurface showImage_centered(ImageSurface surface, RGBImage img, S title) { ret setFrameTitle(showImage_centered(img, surface), title); } static ImageSurface showImage_centered(RGBImage img, ImageSurface surface) { if (surface == null) ret showImage_centered(img); else { surface.setImage(img); ret surface; } } static ImageSurface showImage_centered(RGBImage img) { return showImage_centered(img.getBufferedImage()); } static ImageSurface showImage_centered(ImageSurface surface, S title, RGBImage img) { ret showImage_centered(surface, img, title); }