이번 포스팅에서는 mousePress를 구현해 보자!
mousePress는 지정된 마우스 버튼을 누르는 메서드이다. 아래 보는 완성본과 같이 내가 실행버튼만 눌렀을 뿐인데 Search의 왼쪽 버튼을 알아서 클릭했다.
package Robot;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
public class mousePress {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Robot robot = new Robot();
int button = InputEvent.BUTTON1_DOWN_MASK; // 왼쪽 마우스버튼
robot.mousePress(button);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
다른 블로그에서 보면 아래와 같이 마스크 상수를 이용한다고 나와 있다.
InputEvent.BUTTON1_MASK;
하지만 자바 9 부터는 더 이상 지원하지 않는 상수가 되어버렸다. 따라서 MASK 상수 앞에 DOWN을 작성하여 아래와 같이 사용해 준다.
InputEvent.BUTTON1_DOWN_MASK;
- BUTTON1_DOWN_MASK : BUTTON1 은 왼쪽 마우스 버튼
- BUTTON2_DOWN_MASK : BUTTON2는 가운데 스크롤 버튼
- BUTTON3_DOWN_MASK : BUTTON3 은 오른쪽 마우스 버튼
그러면 조금 더 심화로 실행버튼만 누르면 Robot 메서드가 알아서 무언가를 클릭하는 코드를 만들어보겠다.
딜레이를 주지 않으면 모든게 한 번에 진행되어 정확히 어떤 메서드들을 수행해야 하는지 모를 수 있다. 확인하고 싶다면 delay를 이용하자
package Robot;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
public class mousePress {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Robot robot = new Robot();
int x = 300;
int y = 30;
robot.mouseMove(x, y);
int delayTime = 1000; // 1초 동안 대기
robot.delay(delayTime);
int button = InputEvent.BUTTON1_DOWN_MASK; // 왼쪽 마우스버튼
robot.mousePress(button);
robot.delay(delayTime);
int x1 = 200;
int y1 = 80;
robot.mouseMove(x1, y1);
robot.delay(delayTime);
robot.mousePress(button);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
'JAVA' 카테고리의 다른 글
Java Robot 클래스 delay 적용하기 (1) | 2023.09.02 |
---|---|
Java Robot 클래스 keyPress, keyRelease 적용하기 (0) | 2023.09.01 |
Java Robot 클래스 mouseMove 적용하기 (0) | 2023.08.30 |
[Java] 자바의 리플렉션 (Reflection) 이란? (0) | 2023.08.29 |
Java 의 Robot 클래스란? (0) | 2023.08.28 |