static JPanel jTiledBackground(S imageID, Component contents) { final BufferedImage tileImage = loadImage2(imageID); ret new JPanel { protected void paintComponent(Graphics g) { int width = getWidth(); int height = getHeight(); for (int x = 0; x < width; x += tileImage.getWidth()) for (int y = 0; y < height; y += tileImage.getHeight()) g.drawImage(tileImage, x, y, this); } }; } static JPanel jTiledBackground(S imageID, Component contents) { JPanel panel = jTiledBackground(imageID); panel.setLayout(new BorderLayout); panel.add(BorderLayout.CENTER, jtransparent_recursive(contents)); ret panel; }