import java.awt.AWTException; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; public class CaptureTest3 { private Robot robot; private BufferedImage image; public CaptureTest3() { JFrame frame = new JFrame("Capture Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); try { robot = new Robot(); } catch (AWTException ex) { ex.printStackTrace(); return; } Rectangle bounds = new Rectangle(100, 100, 400, 400); image = robot.createScreenCapture(bounds); frame.setBounds(bounds); frame.setContentPane(new ImageComponent()); frame.getContentPane().add(new JButton("Button")); frame.setVisible(true); } class ImageComponent extends JComponent { public ImageComponent() { super(); setLayout(new FlowLayout()); } public void paintComponent(Graphics g) { g.drawImage(image, 0, 0, this); } } public static void main(String[] args) { new CaptureTest3(); } }