[java] JavaFX 클릭 이벤트 처리

JavaFX에서는 UI 요소에 클릭 이벤트를 처리하는 방법을 제공합니다. 이벤트를 처리하기 위해서는 EventHandler 인터페이스를 구현하고, 해당 UI 요소에 이벤트 핸들러를 등록해야 합니다.

1. FXML 파일에 클릭 이벤트 핸들러 추가하기

먼저, FXML 파일에서 클릭 이벤트를 처리할 UI 요소를 선택하고, 해당 요소의 onMouseClicked 속성에 이벤트 핸들러 메소드를 추가합니다. 예를 들어, 버튼을 클릭했을 때 이벤트를 처리하고 싶다면 다음과 같이 작성할 수 있습니다:

<Button text="클릭하기" onMouseClicked="#handleButtonClick" />

2. Controller 클래스에 이벤트 핸들러 메소드 구현하기

다음으로, Controller 클래스에서 클릭 이벤트 핸들러 메소드를 구현합니다. 이 메소드는 Event 클래스를 파라미터로 받으며, 이 클래스를 사용하여 이벤트를 처리할 수 있습니다. 메소드는 @FXML annotation과 동일한 이름을 가져야 합니다.

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;

public class MyController {
    
    @FXML
    private Button myButton;
    
    @FXML
    private void handleButtonClick(ActionEvent event) {
        // 클릭 이벤트 처리 로직 작성
    }
}

3. 이벤트 핸들러 등록하기

마지막으로, 이벤트 핸들러를 등록해야 합니다. 이는 FXML 파일을 로드하는 부분에서 이루어집니다. 다음은 이벤트 핸들러를 등록하는 예시입니다:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class MyApp extends Application {
    
    @Override
    public void start(Stage primaryStage) throws Exception {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("my_layout.fxml"));
        MyController controller = new MyController();
        loader.setController(controller);
        
        primaryStage.setScene(new Scene(loader.load()));
        primaryStage.show();
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

이렇게하면 JavaFX에서 클릭 이벤트를 처리할 수 있습니다. 이벤트 핸들러 메소드 내에서 원하는 동작을 구현하면 됩니다.

참고 자료