[java] JavaFX 이벤트 처리

JavaFX는 사용자 인터페이스 이벤트 처리를 간편하게 구현할 수 있는 강력한 도구입니다. JavaFX에서 이벤트 처리를 위해 이벤트 리스너를 등록하고 처리하는 방법을 알아보겠습니다.

이벤트 리스너 등록하기

JavaFX에서 이벤트 리스너를 등록하는 방법은 다양합니다. 가장 일반적인 방법은 setOnXXX 메서드를 사용하는 것입니다. 예를 들어, 버튼을 클릭할 때 이벤트를 처리하고 싶다면 setOnAction 메서드를 사용하여 이벤트 리스너를 등록할 수 있습니다.

Button button = new Button("Click Me");
button.setOnAction(event -> {
    // 이벤트 처리 로직 작성
});

또는 FXML 파일에서도 이벤트 리스너를 등록할 수 있습니다.

<Button text="Click Me" onAction="#handleButtonClick" />

위의 코드에서 handleButtonClick 메서드는 컨트롤러 클래스에 구현되어야 합니다.

이벤트 처리 로직 구현하기

이벤트 처리 로직은 이벤트 발생 시 실행되는 메서드입니다. 예를 들어, 버튼 클릭 이벤트 처리를 위한 메서드는 다음과 같이 작성할 수 있습니다.

@FXML
public void handleButtonClick(ActionEvent event) {
    // 이벤트 처리 로직 작성
}

주의해야 할 점은 @FXML 어노테이션을 메서드에 추가해야 한다는 것입니다. 이를 통해 FXML 파일에서 해당 메서드를 참조할 수 있습니다.

이벤트 객체 사용하기

JavaFX에서 이벤트 객체는 각 이벤트에 대한 정보를 포함하고 있습니다. 이벤트 객체를 사용하여 필요한 정보를 얻을 수 있습니다. 예를 들어, 마우스 이벤트의 경우, 마우스 좌표를 알고 싶다면 이벤트 객체의 getX()getY() 메서드를 사용할 수 있습니다.

button.setOnMouseClicked(event -> {
    double x = event.getX();
    double y = event.getY();
    // 마우스 좌표를 이용한 로직 작성
});

이외에도 다양한 이벤트 타입에 따라 사용할 수 있는 메서드들이 존재합니다.

참고 자료