如何使用setVisible(false)从JFrame创建图像?

时间:2014-08-18 22:59:28

标签: java jframe bufferedimage

我创建了一个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

是否有任何可以帮助我完成的工作或改变的事情?

1 个答案:

答案 0 :(得分:2)

装入框架并将其移出显示器的可见区域。例如:

frame.pack();
frame.setLocation(-2000, -2000);
frame.setVisible(true);
// There you go, the frame won't be visible