Я пытаюсь создать изображение (снимок экрана) невидимого компонента AWT. Я не могу использовать функции захвата экрана классов Robot
, потому что компонент не отображается на экране. Попытка использовать следующий код:
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
component.paintAll(g);
Иногда работает, но не работает, если компонент содержит такие элементы, как текстовое поле или кнопку, или какой-либо компонент OpenGL / 3D (эти элементы отсутствуют в изображении!). Как мне сделать правильный снимок экрана всего этого?