2009-05-19 1 views
1

Как я могу «прочитать» графическую информацию под компонентом (скажем, как BufferedImage)?Swing: Как читать графическую информацию под компонентом?

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

Мой подход вероятно неправильно:
Я пытаюсь получить графическую информацию, например Graphics2D дал мне в краски (...) метод, но он пустой, не так ли?

ответ

1

Вопрос: ваш компонент верхнего уровня (то есть вы хотите знать, что находится на рабочем столе под JFrame), или вы просто хотите узнать о компонентах, которые расположены под компонентом?

Если 1), то просто взять скриншот с методом java.awt.RobotcreateScreenCapture(Rectangle); Rectangle должен быть вашим границей окна в этом случае.

Если 2), то, если у вас есть ссылка на компонент внизу, вы можете использовать тот факт, что paint(Graphics) не волнует, откуда пришел объект Graphics. Вы можете создать BufferedImage, позвонить createGraphics() (в случае ожидания Graphics2D) и передать результат методу paint(Graphics) компонента, который вы хотите захватить.
Обратите внимание, что если компонент является контейнером, он также рисует своих детей; это может быть или не быть тем, что вы хотите.

+0

Мне нужно число 2). Спасибо, я попробую это !!!! –