我通过“双缓冲”的方式截取了一个JFrame的截图,如下所示:
public BufferedImage getScreenshot() {
java.awt.Dimension dim = this.getPreferredSize();
BufferedImage image = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
this.paint(image.getGraphics());
return image;
}其中this扩展了JFrame。我得到的图像在标题栏所在的顶部有一个空白条带。在不为标题栏分配额外空间的情况下,捕获JFrame内容的图像的最直接方法是什么?
发布于 2010-12-23 12:49:28
您应该能够使用Screen Image类。只需指定框架的内容窗格(如果有菜单,则指定根窗格)作为要显示其图像的组件。
或者你的基本代码应该可以工作,同样只需要指定内容窗格(或根窗格)作为你想要绘制的组件,而不是框架本身。
https://stackoverflow.com/questions/4515902
复制相似问题