Как сохранить содержимое окна в виде изображения - PullRequest
4 голосов
/ 18 января 2011

Я хочу захватить содержимое JPanel в виде изображения, чтобы я мог сохранить его точно так, как его видит пользователь.Есть ли относительно простой способ сделать это с помощью свинга?

Ответы [ 3 ]

7 голосов
/ 18 января 2011

Отсюда http://forums.oracle.com/forums/thread.jspa?threadID=2156176&tstart=0

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class SavePaint extends JPanel
{

    public SavePaint()
    {
        JFrame frame = new JFrame("TheFrame");
        frame.add(this);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400,400);
        frame.setVisible(true);

        try
        {
            BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics2D = image.createGraphics();
            frame.paint(graphics2D);
            ImageIO.write(image,"jpeg", new File("/home/deniz/Desktop/jmemPractice.jpeg"));
        }
        catch(Exception exception)
        {
            //code
        }
    }

    protected void paintComponent(Graphics g)
    {
        g.drawRect(50,50,50,50);
    }

    public static void main(String[] args)
    {
        new SavePaint();
    }
}
3 голосов
/ 18 января 2011

Используйте Робот и public BufferedImage createScreenCapture(Rectangle screenRect). а вот ссылка как это использовать

0 голосов
/ 18 января 2011

использование new java.awt.Robot().createScreenCapture(screenRect)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...