!7 p-substance { final ImageSurface is = showImage(makeImage(100, 100)); is.addComponentListener(new ComponentAdapter { public void componentResized(ComponentEvent e) { print("component resized. " + is.getSize()); BufferedImage img = is.getImage(); if (img.getWidth() != is.getWidth() || img.getHeight() != is.getHeight()) is.setImage(makeImage(is.getWidth(), is.getHeight())); } }); } static BufferedImage makeImage(final int w, final int h) { ret renderImage(w, h, func(int x, int y) { ret x < w/2 != y < h/2; }); }