首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将JFrame内容另存为.png

将JFrame内容另存为.png
EN

Stack Overflow用户
提问于 2019-05-19 22:02:17
回答 3查看 327关注 0票数 1

我目前正在用Java开发一个2D游戏(我使用的是JFrame)。我想,当某个按钮被按下时,保存框架的内容并将其存储在图像中。目前,我使用以下代码:

Robot robot = new Robot();
Rectangle screenSize = new Rectangle(display.getFrame().getX() + 3, display.getFrame().getY() + 26, handler.getWidth(), handler.getHeight());

BufferedImage screenShot = robot.createScreenCapture(screenSize);   ImageIO.write(screenShot,File("D:\\Programming\\First2DGame\\res\\textures\\Screenshot.png"));

问题是,这需要屏幕的一部分的屏幕截图,而不是帧本身的。这意味着,例如,如果我将窗口移动到屏幕的右下角,我会收到一个不一致的通知,然后我按下我的按钮,通知将出现在屏幕截图中。

我已经搜索过了,我试过这段代码:

 try
        {
            BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics2D = image.createGraphics();
            frame.paint(graphics2D);
            ImageIO.write(image,"jpeg", new File("D:\\Programming\\First2DGame\\res\\textures\\Screenshot.png"));
        }
        catch(Exception e)
        {
            e.printStackTrace;
        }
    }

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

但是结果是一个白色的窗口:

您可能知道如何创建仅 frame的屏幕截图

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56208544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档