static JPanel jCenteredBackgroundImage(S imageID) { ret jCenteredBackgroundImage(loadImage2(imageID)); } static JPanel jCenteredBackgroundImage(final BufferedImage image) { ret swing(func -> JPanel { ret new JPanel { protected void paintComponent(Graphics g) { paintCenteredBackgroundImage(this, g, image); } }; }); } static JPanel jCenteredBackgroundImage(S imageID, Component contents) { ret jCenteredBackgroundImage(loadImage2(imageID), contents); } static JPanel jCenteredBackgroundImage(final BufferedImage image, final Component contents) { ret swing(func -> JPanel { JPanel panel = jCenteredBackgroundImage(image); panel.setLayout(new BorderLayout); panel.add(BorderLayout.CENTER, jtransparent_recursive(contents)); ret panel; }); }