[java] JavaFX 키보드 및 마우스 이벤트 처리

JavaFX는 키보드 및 마우스 이벤트를 간단하게 처리할 수 있는 다양한 기능을 제공합니다. 이벤트 처리는 사용자의 입력에 따라 애플리케이션의 동작을 제어하는 중요한 부분입니다. 이 글에서는 JavaFX에서 키보드 및 마우스 이벤트를 처리하는 방법에 대해 알아보도록 하겠습니다.

키보드 이벤트 처리

JavaFX에서는 setOnKeyPressed 메서드를 사용하여 키보드 이벤트를 처리할 수 있습니다. 아래의 예제는 사용자가 키를 눌렀을 때 콘솔에 해당 키의 이름을 출력하는 간단한 코드입니다.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.input.KeyEvent;

public class KeyboardEventExample extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        Scene scene = new Scene(root, 300, 200);
        
        scene.setOnKeyPressed((KeyEvent event) -> {
            System.out.println("Key Pressed: " + event.getCode().toString());
        });
        
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

위의 코드에서는 setOnKeyPressed 메서드를 사용하여 KeyEvent 객체를 이용해 키 이벤트를 처리하고, getCode 메서드를 사용하여 눌린 키의 이름을 출력하고 있습니다.

마우스 이벤트 처리

JavaFX에서는 setOnMouseClickedsetOnMouseMoved 메서드를 사용하여 마우스 이벤트를 처리할 수 있습니다. 아래의 예제는 사용자가 마우스를 클릭했을 때 콘솔에 클릭한 위치의 좌표를 출력하는 간단한 코드입니다.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.input.MouseEvent;

public class MouseEventExample extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        Scene scene = new Scene(root, 300, 200);
        
        scene.setOnMouseClicked((MouseEvent event) -> {
            double x = event.getX();
            double y = event.getY();
            System.out.println("Mouse Clicked at (" + x + ", " + y + ")");
        });
        
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

위의 코드에서는 setOnMouseClicked 메서드를 사용하여 MouseEvent 객체를 이용해 마우스 클릭 이벤트를 처리하고, getXgetY 메서드를 사용하여 클릭한 위치의 좌표를 출력하고 있습니다.

요약

JavaFX를 사용하여 키보드 및 마우스 이벤트를 처리하는 방법에 대해 알아보았습니다. 위의 예제 코드들을 통해 간단한 이벤트 처리를 시작할 수 있습니다. 더 복잡한 이벤트 처리를 위해서는 JavaFX의 이벤트 핸들러들에 대한 더 많은 공부가 필요합니다. JavaFX 공식 문서를 참고하여 더 자세한 내용을 학습하시기 바랍니다.

참고자료