Java에서 마우스 끌기 이벤트를 시뮬레이트하는 방법이 있습니까? java.awt.Robot을 사용하여 마우스 클릭과 마우스 움직임을 시뮬레이션 할 수 있습니다. 그러나 마우스 끌기 동작을 시뮬레이션 할 수는 없습니다.마우스로 프로그래밍 방식으로 마우스로 드래그
robot.mouseRelase를 호출하기 전에 robot.mousePress()를 사용하여 로봇 버튼을 누른 상태에서 마우스를 움직이는 동안 여러 번 일시 중지하면서 마우스 위치를 이동 시키려고했습니다. 그러나이 모든 것은 마우스 커서 이동을 시뮬레이트하고 마우스 끌기 이벤트를 시뮬레이트하지 않습니다.
내가 사용중인 코드 스 니펫을 포함합니다. 그러나, 그것은 내가 위에서 언급 한 바로 그 것이며, 마우스를 클릭하고 마우스 커서를 움직입니다.
Windows 7에서이 응용 프로그램을 실행하고 있습니다.
감사합니다.
public void click() throws AWTException, InterruptedException {
int numberOfMoveIterations = 15;
Robot bot = new Robot();
Thread.sleep(mouseDownDelayClickTime + this.delayTime);
bot.mouseMove((int) (mouseClickDownXLocation * this.widthEventOffset), (int) (mouseClickDownYLocation * this.heightEventOffset));
bot.mousePress(InputEvent.BUTTON1_MASK);
if (mouseClickDownXLocation != mouseClickUpXLocation || mouseClickDownYLocation != mouseClickUpYLocation) {
int xAmountToMove = mouseClickUpXLocation - mouseClickDownXLocation;
int yAmountToMove = mouseClickUpYLocation - mouseClickDownYLocation;
int xAmountPerIteration = xAmountToMove/numberOfMoveIterations;
int yAmountPerIteration = yAmountToMove/numberOfMoveIterations;
int currentXLocation = mouseClickDownXLocation;
int currentYLocation = mouseClickDownYLocation;
while (currentXLocation < mouseClickUpXLocation + xAmountToMove
&& currentYLocation < mouseClickUpYLocation + yAmountToMove) {
currentXLocation += xAmountPerIteration;
currentYLocation += yAmountPerIteration;
bot.mouseMove(currentXLocation, currentYLocation);
Thread.sleep(mouseUpDelayClickTime);
}
}
bot.mouseRelease(InputEvent.BUTTON1_MASK);
}