【发布时间】:2014-08-21 17:41:01
【问题描述】:
这就是我如何制作整个 JFrame 的屏幕截图
Rectangle screenRect = cap.getBounds();
File docfile = new File("image");
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageIO.write(capture, "png", file);
cap 是一个 JFrame。但是当我为cap 使用 JPanel 时,我得到了我的桌面的部分屏幕截图,而不仅仅是 JPanel,这是我真正想要的。
【问题讨论】:
-
标为重复的 Q&A 从标题上看可能看起来不正确,但答案还包括获取显示组件的图像。
-
@AndrewThompson 但不适用于 java.awt.Robot
-
但要使用
Robot,则需要getLocationOnScreen()用于感兴趣的组件。 -
@AndrewThompson 我个人不会关闭这个。他明确要求提供机器人截图。当然,应该提到存在绘制成 BufferedImage 的可能性,但也许他只是在寻找一种方法来确定面板的 on-screen 边界......? [编辑:我对这个评论太慢了,但还是把它留在这里]
-
我同意@AndrewThompson 关于几何的分析,但另请参阅
Zoom。
标签: java image swing screenshot jcomponent