Создать изображение из невидимого компонента AWT?

Я пытаюсь создать изображение (снимок экрана) невидимого компонента AWT. Я не могу использовать функции захвата экрана классов Robot , потому что компонент не отображается на экране. Попытка использовать следующий код:

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

Иногда работает, но не работает, если компонент содержит такие элементы, как текстовое поле или кнопку, или какой-либо компонент OpenGL / 3D (эти элементы отсутствуют в изображении!). Как мне сделать правильный снимок экрана всего этого?

22
задан Isaac Waller 26 October 2010 в 23:41
поделиться