본문 바로가기

JAVA/SWT/JFACE

JAVA 화면 캡쳐 코드

Display display = Display.getCurrent();		
 // browser => 캡쳐할 SWT 위젯 ==> 여기에서는 SWT Browser !				
Point pt = browser.toDisplay(1, 1);
Point ptSize = browser.getSize();			
GC gc = new GC(display);
			
final Image image = new Image(display, ptSize.x,ptSize.y);
	        
ImageData imgData = image.getImageData();
	        	        
gc.copyArea(image, pt.x, pt.y);
gc.dispose();

Shell popup = new Shell();
popup.setText("Image");
popup.addListener(SWT.Close, new Listener() {
    public void handleEvent(Event e) {
        image.dispose();
        }
    });

Canvas canvas = new Canvas(popup, SWT.NONE);
canvas.setBounds(10, 10, ptSize.x + 10, ptSize.y + 10);
canvas.addPaintListener(new PaintListener() {
    public void paintControl(PaintEvent e) {
        e.gc.drawImage(image, 0, 0);
    }
});