Вопрос: ваш компонент верхнего уровня (то есть, вы хотите знать, что находится на рабочем столе под JFrame), или вы просто хотите узнать о компонентах, которые расположены под компонентом?
Если 1), то просто сделать снимок экрана с помощью метода java.awt.Robot
createScreenCapture(Rectangle)
; Rectangle
должны быть вашими границами окна в этом случае.
Если 2), то если у вас есть ссылка на компонент внизу, вы можете использовать тот факт, что paint(Graphics)
не имеет значения, откуда появился объект Graphics
. Вы можете создать BufferedImage
, вызвать createGraphics()
(если ожидается Graphics2D
) и передать результат в метод paint(Graphics)
компонента, который вы хотите захватить.
Обратите внимание, что если компонент является контейнером, он также будет рисовать свои дочерние элементы; это может или не может быть то, что вы хотите.