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