0

Эмуляция действий пользователя в Java

Пишу заготовку для графического редактора на Java. Захотелось мне, что бы в моей проге было как в P-CAD: при изменении масштаба указатель мыши всегда указывал на одну и ту же точку изображения. В P-CAD для пущей крутизны эта точка еще и переносится в центр окна. Сначала все сделал без перемещения указателя к центру. Вроде ничего, приятно :) Потом захотелось крутизны. Но вот незадача - понятия не имею, как в Java указатель мышки программно переместить. Пробовал генерировать события для окна через dispatchEvent() - ни хрена не помогает. После получаса поисков с грехом пополам на форуме Винграда нашел подсказку - оказывается, для этих целей аж специальный класс есть!!! Под названием java.awt.Robot.
Перемещение указателя мышки в нужную точку компонента оказалось очень простым:

import java.awt.*;
...
try{
Robot rob = new Robot();
Point2D p1 = comp.getLocationOnScreen();
rob.mouseMove((int)p1.getX() + comp.getWidth()/2,
(int)p1.getY() + comp.getHeight()/2);
}
catch(AWTException ex){
System.out.println("Can't move mouse to center, error in DrawingWindow.java:195");
}

Здесь у меня comp - экземпляр класса, наследованного от класса java.awt.Panel.

0 коммент.:

Отправить комментарий