我创建了一个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
。
是否有任何可以帮助我完成的工作或改变的事情?
答案 0 :(得分:2)
装入框架并将其移出显示器的可见区域。例如:
frame.pack();
frame.setLocation(-2000, -2000);
frame.setVisible(true);
// There you go, the frame won't be visible