JFrame para imagem sem mostrar o JFrame
Eu estou tentando renderizar um JFrame para uma imagem sem exibir o próprio JFrame (similar ao queisto pergunta é perguntar). Eu tentei usar este pedaço de código:
private static BufferedImage getScreenShot(Component component)
{
BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB);
// call the Component's paint method, using
// the Graphics object of the image.
component.paint(image.getGraphics());
return image;
}
No entanto, isso só funciona quando oJFrame
'ssetVisible(true)
está definido. Isso fará com que a imagem seja exibida na tela, o que não é algo que eu quero. Eu também tentei criar algo assim:
public class MyFrame extends JFrame
{
private BufferedImage bi;
public MyFrame(String name, BufferedImage bi)
{
this.bi = bi;
super(name);
}
@Override
public void paint(Graphics g)
{
g.drawImage(this.bufferedImage, 0, 0, null);
}
}
No entanto, isso exibe imagens em preto (como o código acima). Tenho certeza de que o que estou procurando é possível, o problema é que não consigo encontrar como. Minha experiência com componentes Swing personalizados é bastante limitada, portanto, qualquer informação será apreciada.
Obrigado.