JFrame a la imagen sin mostrar el JFrame

Estoy tratando de renderizar un JFrame a una imagen sin mostrar nunca el JFrame mismo (similar a lo queesta pregunta es la pregunta). He intentado usar este 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;
}

Sin embargo, esto solo funciona cuando elJFrameessetVisible(true) Está establecido. Esto hará que la imagen se muestre en la pantalla, que no es algo que yo quiera. También he intentado crear algo así:

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);
    }
}

Sin embargo, esto muestra imágenes en negro (como el código anterior). Estoy bastante seguro de que lo que busco es posible, el problema es que realmente no puedo encontrar cómo. Mi experiencia con los componentes Swing personalizados es bastante limitada, por lo que cualquier información será apreciada.

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta