[java] Java Vaadin 이벤트 처리하기

Vaadin은 Java 기반의 웹 애플리케이션 개발 프레임워크로, 사용자와 상호작용하는 동안 발생하는 이벤트를 처리하는 기능을 제공합니다. 이 글에서는 Vaadin에서 이벤트를 처리하는 방법에 대해 알아보겠습니다.

이벤트 핸들러 등록하기

Vaadin에서 이벤트를 처리하기 위해서는 이벤트가 발생할 컴포넌트에 이벤트 핸들러를 등록해야 합니다. 이벤트 핸들러는 ComponentEventListener 인터페이스를 구현한 클래스로 정의됩니다. 아래의 예제는 Button 컴포넌트에 클릭 이벤트 핸들러를 등록하는 방법을 보여줍니다.

Button button = new Button("Click me");
button.addClickListener(event -> {
    // 클릭 이벤트 처리 로직
});

이벤트 리스너 등록하기

이벤트 핸들러를 등록하는 것 외에도, Vaadin에서는 이벤트 리스너를 등록하여 여러 이벤트를 한 번에 처리할 수 있습니다. 이벤트 리스너는 HasValue.ValueChangeListener 인터페이스를 구현한 클래스로 정의됩니다. 예를 들어, TextField의 값 변경 이벤트와 Button의 클릭 이벤트를 모두 처리하려면 아래와 같이 이벤트 리스너를 등록할 수 있습니다.

TextField textField = new TextField();
Button button = new Button("Click me");

textField.addValueChangeListener(event -> {
    // 값 변경 이벤트 처리 로직
});

button.addClickListener(event -> {
    // 클릭 이벤트 처리 로직
});

이벤트 처리 로직 구현하기

이벤트 핸들러나 이벤트 리스너에서 이벤트 처리 로직을 구현할 수 있습니다. 예를 들어, 버튼을 클릭하면 메시지를 출력하고, TextField의 값이 변경되면 변경된 값을 저장하는 로직을 작성해보겠습니다.

Button button = new Button("Click me");
TextField textField = new TextField();
Label outputLabel = new Label();

button.addClickListener(event -> {
    outputLabel.setText("버튼이 클릭되었습니다.");
});

textField.addValueChangeListener(event -> {
    String value = event.getValue();
    outputLabel.setText("입력된 값은 " + value + "입니다.");
});

이 예제에서는 Button의 클릭 이벤트 핸들러와 TextField의 값 변경 이벤트 리스너를 등록하여, 클릭이나 값 변경이 발생할 때마다 outputLabel에 결과를 출력하도록 합니다.

정리

Vaadin에서 이벤트를 처리하기 위해서는 이벤트 핸들러를 등록하거나 이벤트 리스너를 등록해야 합니다. 이벤트 핸들러는 개별 컴포넌트의 이벤트를 처리하고, 이벤트 리스너는 여러 이벤트를 한 번에 처리할 수 있습니다. 이벤트 처리 로직은 각 이벤트 핸들러나 이벤트 리스너에서 구현할 수 있으며, 원하는 동작을 작성할 수 있습니다.

Vaadin 공식 문서에서는 더 자세한 내용을 확인할 수 있습니다. 링크

위의 예제는 Vaadin Flow 14.7.1 버전을 기준으로 작성되었습니다.