我创建了一个JFrame,它基本上创建了一个网格,并进行了一些计算,我需要从中获取图像,我目前使用的是:
public static BufferedImage createImageFromFrame(Component component) {
int w = component.getWidth();
int h = component.getHeight();
BufferedImage image = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
component.paint( image.getGraphics() );
return image;
}
调用:JFrame window = new JFrame();
// set stuff
BufferedImage img = d.createImageFromFrame(window.getContentPane());
这样就可以了。但现在我想从不同的帧中创建多个图像,我不想让每个图像都出现在屏幕上,我只想要从它们生成的图像。但是我注意到我不能使用setVisible(false)
,因为它给出了java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0
。
有没有什么工作,或者什么可以改变,可以帮助我完成?
打包框架并将其移出显示的可见区域。例如:
frame.pack();
frame.setLocation(-2000, -2000);
frame.setVisible(true);
// There you go, the frame won't be visible