Main > Java | Java labs > Прозрачность окон для курсора в Java

Прозрачность окон для курсора в Java

08.06.2012 0 comments » Views: 1,880

Сегодня увидел на хабре эту статью: Окна «неправильной» формы, Java 6 & 7 ed и вспомнил, что месяца три назад, я игрался с захватом изображения с экрана и столкнулся с задачей, сделать "прозрачное окно" для курсора, т.е. чтобы я мог, например, нажать на ссылку расположенную под "окном захвата".

Окно захвата должно было представлять из себя прямоугольник двигающийся повсюду за курсором мыши.

Помню, что я довольно долго, искал способ это сделать. Я пытался найти способ отрисовки прямо на рабочем столе и даже делал, что-то вроде захвата изображения под окном и пытался по клику по нему передать клик под окно, но что-то тогда пошло не так.. и теми способами что я нашел, мне так и не удалось это реализовать. Но я не сдался и придумал свой вариант..

Выглядит это так:

Как видите, черный прямоугольник справа, это область захвата, она двигается за курсором. И что самое главное - мышка работает без проблем. На скриншоте видно, что ссылка стала активной.

Как же такое реализовать, если отрисовка на десктопе невозможна, и передача клика под окно тоже?

Как говорится, "голь на выдумки хитра", поэтому с моими небольшими знаниями Java, я сделал так: каждая рамка (всего их 4-е) представляет из себя 2х пиксельный JFrame, т.е. я создал дополнительно 4е окна, убрал у них контролы и покрасил в черный цвет. А дальше осталось их только объединить в один класс для удобства. Такой вот я изобрел костыль:

Я не претендую на Премию Тьюринга, но возможно, этот способ так же кому-то пригодится.

Полный код софтинки со скриншота тут: ScreenZoom

Author: | Rating: 4/5 | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>