Вопрос слушателя мыши - PullRequest
1 голос
/ 21 февраля 2009

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

Ответы [ 4 ]

1 голос
/ 21 февраля 2009

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

Скорее, попытайтесь приблизиться к нему, как извлечение информации о пикселях, отображаемой на экране. Существует пакет awt java.awt.Robot или что-то, что можно использовать для ваших целей. Если вы хотите реализовать захват активного окна, посмотрите, есть ли API-интерфейсы Java для взаимодействия с O.S. и получить информацию о текущем активном окне и его пиксельных координатах. Затем координаты могут быть переданы в атрибут прямоугольника, который используется с API java.awt.Robot для определения области захвата экрана.

1 голос
/ 21 февраля 2009

Я могу быть далеко от базы, но если другое окно не является окном Java, то оно должно быть вне песочницы Java. Для взаимодействия с ним требуется собственный API, который является анафемой для Java.

0 голосов
/ 21 февраля 2009

java.awt.Robot имеет метод createScreenCapture (Rectangle screenRect) для захвата скриншотов. http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html

однако, чтобы получить текущее активное окно, вам придется использовать специфичные для ОС расширения (в основном через JNI)

0 голосов
/ 21 февраля 2009

Если это окно не является частью вашего приложения, вы ничего не можете с ним сделать.

В противном случае вам просто нужно добавить слушателя мыши в это окно.

Каково ваше положение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...