Criar uma imagem a partir de um componente AWT não visível?

Estou tentando criar uma imagem (captura de tela) de um componente AWT não visível. Não posso usar oRobot funcionalidade de captura de tela das classes porque o componente não está visível na tela. Tentando usar o seguinte código:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
component.paintAll(g);

Às vezes funciona, mas não funciona se o componente contiver itens como caixa de texto ou botão ou algum tipo de componente OpenGL / 3D (esses itens são deixados de fora da imagem!). Como posso tirar uma captura de tela adequada da coisa toda?

questionAnswers(5)

yourAnswerToTheQuestion