Единственный способ сделать что-либо с окнами, которые не являются вашими в pure java , - это класс java.awt.Robot
.Но он также не предлагает никакого полезного API для вашей цели, поэтому вы можете только сделать скриншот, проанализировать результаты, а затем соответственно расположить, нажать, переместить и отпустить мышь - таким образом, сделайте то же самое, что сделал бы пользователь.
Если вы хотите больше, вам нужно получить информацию о системе.Я думаю, что и Windows API, и протокол X (и, следовательно, клиентские библиотеки X) предлагают, по крайней мере, возможность получать информацию о других окнах программ, я не знаю об их изменении.(Полагаю, у Mac OS есть и такие возможности.)
Обычно это означает написание хотя бы основ этой функциональности на C (или на любом другом языке, который имеет доступ к такой библиотеке), а затем использует JNI для доступаэто с Java.Вы также можете использовать JNI-оболочку, такую как JNA (собственный доступ Java), чтобы пропустить шаг JNI.