【发布时间】:2014-08-18 22:59:27
【问题描述】:
我创建了一个 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。
是否有任何解决方法,或需要改变的东西可以帮助我实现这一目标?
【问题讨论】:
标签: java jframe bufferedimage