Качели:Как прочитать графическую информацию под компонентом?

StackOverflow https://stackoverflow.com/questions/882307

Вопрос

Как я мог "прочитать" графическую информацию под компонентом (допустим, как Буферизованное изображение)?

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top