sclass DesktopPaneWithFitPicture_smooth_cacheScaled extends JDesktopPane { BufferedImage image, scaled; *(BufferedImage *image) {} protected void paintComponent(Graphics g) { Pt size = calcFitSize(image, this); if (scaled == null || scaled.getWidth() != size.x || scaled.getHeight() != size.y) { print("Scaling image"); scaled = resizeImage(image, size.x, size.y); } paintCenteredBackgroundImage(this, g, image); } } static JDesktopPane jDesktopPaneWithFitPicture_smooth_cacheScaled(S imageID) { ret swingNu(DesktopPaneWithFitPicture_smooth, loadImage2(imageID)); }