Robot 클래스의 지정된 키를 누르는 keyPress에 대한 코드를 알아보려고 한다.
keyPress 코드의 가장 핵심은 KeyEvent 클래스의 상수를 사용하는 것이다.
KeyEvent.VK_알파벳
KeyEvent 상수를 이용하여 변수를 선언해 주고 KeyPress (가상 키 버튼 누르기) 혹은 KeyRelease (가상 키 버튼 놓기)를 이용하여 구현하면 된다.
[기본 완성본]
우선 완성본을 보쟈! 진짜 신기하다.
package Robot;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class keyPress {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Robot robot = new Robot();
int keyCode = KeyEvent.VK_A; // a 키 누르기
robot.keyPress(keyCode);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
앗? 근데 엔터치고 싶은데 어떻게 해야 하지? 그리고 대문자도 쓰고 싶은데 그건 어떻게 해야 하지?
[가상 키코드 종류]
- KeyEvent.VK_알파벳: 알파벳 키 -> 무조건 대문자로 작성 한다
- KeyEvent.VK_ENTER: 엔터 키
- KeyEvent.VK_SPACE: 스페이스바
- KeyEvent.VK_SHIFT: 쉬프트 키
- KeyEvent.VK_CONTROL: 컨트롤(Ctrl) 키
- KeyEvent.VK_ALT: 알트(Alt) 키
[대문자 입력 예제]
Shift 키와 알파벳 키를 눌러주고 (Press) 해당 키들을 풀어주면(Release) 된다.
package Robot;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class keyPress {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Robot robot = new Robot();
int keyPressCode = KeyEvent.VK_SHIFT; // Shift 키 누르기
int keyCode = KeyEvent.VK_A; // 'A' 키
robot.keyPress(keyPressCode);
robot.keyPress(keyCode);
robot.keyRelease(keyCode);
robot.keyRelease(keyPressCode);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
[주의해야 할 점]
키 코드로 엔터나 스페이스 시프트 등을 입력해 주었다면 꼭 KeyRelease를 해주어야 한다. 그렇지 않으면 계속~~ 눌려있는 상태여서 굉장히 당황스러운 상황이 발생될 수 있다.
'JAVA' 카테고리의 다른 글
Query String (쿼리스트링)의 개념 (0) | 2023.09.04 |
---|---|
Java Robot 클래스 delay 적용하기 (1) | 2023.09.02 |
Java Robot 클래스 mousePress 적용하기 (0) | 2023.08.31 |
Java Robot 클래스 mouseMove 적용하기 (0) | 2023.08.30 |
[Java] 자바의 리플렉션 (Reflection) 이란? (0) | 2023.08.29 |