[JAVA] Robot 클래스 설명과 사용 예(원격제어)

2024. 3. 11. 18:27프로그래밍(Backend)/Java

Robot클래스는 직접 키보드 마우스등을 사용하지 않고 제어하기 위한 클래스이고 화면의 정보까지 주고 받을 수 있기 때문에 원격 제어 프로그램등에 사용됩니다.

 

생성자

- Robot()
기본 화면의 좌표계에 로봇 개체를 구성합니다.
- Robot(GraphicsDevice screen)
지정된 화면 장치에 대한 로봇을 생성합니다.

 

Robot 클래스 모든 Method (주요 메소드        )

Type Method
BufferedImage createScreenCapture(Rectangle screenRect)
화면에서 읽은 픽셀이 포함된 이미지를 만듭니다.
void delay(int ms)
지정된 시간 동안 잔다.
int getAutoDelay()
이벤트 생성 후 이 로봇이 휴면하는 시간(밀리초)을 반환합니다.
Color getPixelColor(int x, int y)
주어진 화면 좌표의 픽셀 색상을 반환합니다.
boolean isAutoWaitForIdle()
waitForIdle 이벤트 생성 후 이 로봇이 자동으로 호출되는지 여부를 반환합니다 .
void keyPress(int keycode)
주어진 키를 누릅니다.
void keyRelease(int keycode)
지정된 키를 해제합니다.
void mouseMove(int x, int y)
주어진 화면 좌표로 마우스 포인터를 이동합니다.
void mousePress(int buttons)
하나 이상의 마우스 버튼을 누릅니다.
void mouseRelease(int buttons)
하나 이상의 마우스 버튼을 놓습니다.
void mouseWheel(int wheelAmt)
휠이 장착된 마우스의 스크롤 휠을 회전합니다.
void setAutoDelay(int ms)
이벤트 생성 후 이 로봇이 휴면하는 시간(밀리초)을 설정합니다.
void setAutoWaitForIdle(boolean isOn)
waitForIdle 이벤트 생성 후 이 로봇이 자동으로 호출되는지 여부를 설정합니다 .
String toString()
이 로봇의 문자열 표현을 반환합니다.
void waitForIdle()
현재 이벤트 큐에 있는 모든 이벤트가 처리될 때까지 기다립니다.

 

주요 Method

  • createScreenCapture
    public BufferedImage createScreenCapture(Rectangle screenRect)
        화면에서 읽은 픽셀이 포함된 이미지를 만듭니다. (마우스 커서 미포함)
    Parameters:
        screenRect- 화면 좌표로 캡처할 사각형
    Returns:
        캡처된 이미지
  • keyPress
    public void keyPress(int keycode)
        주어진 키를 누릅니다. 키는 keyRelease메소드를 사용하여 해제되어야 합니다.
    Parameters:
        누를 키 (예: KeyEvent.VK_A)
  • keyRelease
    public void keyRelease(int keycode)
        지정된 키를 해제합니다.
    Parameters:
        해제할 키(예: KeyEvent.VK_A)
  • mouseMove
    public void mouseMove(int x, int y)
        주어진 화면 좌표로 마우스 포인터를 이동합니다.
    Parameters:
        x - X 좌표
        y - Y 좌표
  • mousePress
    public void mousePress(int buttons)
    하나 이상의 마우스 버튼을 누릅니다.  mouseRelease메서드를 사용하여 마우스 버튼을 놓아야 합니다
    Parameters:
    buttons - 하나 이상의 마우스 버튼 마스크의 조합.
  • mouseRelease
    public void mouseRelease(int buttons)
    하나 이상의 마우스 버튼을 놓습니다.
    Parameters:
    buttons- 하나 이상의 마우스 버튼 마스크의 조합.

참조 : https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html

사용 예시 : https://github.com/jongwon-kr/remoteControl