getComponentAt(Point x),这个方法对你有帮助的。

解决方案 »

  1.   

    如何实现在一个java的应用程序里复制一个Frame窗口中任意一个Container的屏幕图象到一个JPanel上?java.awt.Robot
    BufferedImage createScreenCapture(Rectangle screenRect)计算Container的绝对位置,构造Rectangle screenRect,再调用Robot类的createScreenCapture方法,可返回矩形区域屏幕图象BufferedImage,再将这个Image画到JPanel上去。
      

  2.   

    package test.testcopy;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.BufferedImage;public class TestCopy {    public static void main(String[] args) {
            final JFrame f = new JFrame();
            JPanel p = new JPanel(new GridLayout(2,1));
            f.setContentPane(p);
            final JPanel p1 = new JPanel(new BorderLayout());
            final JLabel label = new JLabel();
            p.add(p1);
            p1.add(new JTextField(),BorderLayout.CENTER);
            JButton bt = new JButton("COPY");
            p1.add(bt,BorderLayout.EAST);
            bt.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    BufferedImage bi = (BufferedImage)f.createImage(p1.getWidth(),p1.getHeight());
                    Graphics g = bi.createGraphics();
                    p1.print(g);
                    label.setIcon(new ImageIcon(bi));
                }
            });
            
            
            JPanel p2 = new JPanel(new BorderLayout());
            p.add(p2);
            p2.add(label);
            f.setSize(400,400);
            f.show();
        }
    }