我试图在JFrame中获取组件的屏幕截图。 问题是这个组件很大,你不能完全在窗口中看到它(你必须向下滚动才能看到隐藏的部分)。 我尝试了几件事,例如:
Rectangle rect = component.getBounds();
try {
String format = "png";
String fileName = component.getName() + "." + format;
BufferedImage captureImage =
new BufferedImage(rect.width, rect.height,
BufferedImage.TYPE_INT_ARGB);
component.paint(captureImage.getGraphics());
ImageIO.write(captureImage, format, new File(fileName));
System.out.printf("The screenshot of %s was saved!", component.getName());
} catch (IOException ex) {
System.err.println(ex);
}
这个(coming from here):
BufferedImage bi;
try {
bi = ScreenImage.createImage( component );
ScreenImage.writeImage(bi, "Screen-Image.jpg");
} catch (AWTException | IOException e) {
e.printStackTrace();
}
但在这两种情况下,我得到的屏幕截图只显示了我在窗口中可以看到的内容。 因此,如果我向下滚动,我会错过上面的部分,如果我向上滚动,我会错过底部。 你知道如何在图片中渲染整个组件吗?