[java] Vaadin의 동적 컴포넌트 생성

Vaadin은 Java 기반의 웹 애플리케이션 개발을 위한 프레임워크로, 동적으로 컴포넌트를 생성할 수 있는 강력한 기능을 제공합니다. 이 기능을 사용하여 웹 페이지에서 필요에 따라 컴포넌트를 동적으로 생성할 수 있습니다.

컴포넌트 생성

Vaadin에서 컴포넌트를 동적으로 생성하려면 VerticalLayout, HorizontalLayout 등과 같은 레이아웃 컴포넌트를 사용하여 컴포넌트를 담을 수 있는 컨테이너를 생성해야 합니다. 그런 다음, 원하는 컴포넌트를 컨테이너에 추가하면 됩니다.

VerticalLayout container = new VerticalLayout();

Button button = new Button("동적 버튼");
container.add(button);

TextField textField = new TextField("동적 텍스트필드");
container.add(textField);

// 생성한 컨테이너를 화면에 추가
add(container);

위의 예제에서는 VerticalLayout을 사용하여 컨테이너를 생성한 후, 버튼과 텍스트 필드를 컨테이너에 추가하였습니다. 마지막으로 add() 메소드를 사용하여 컨테이너를 화면에 추가하였습니다.

이벤트 처리

동적으로 생성한 컴포넌트에 이벤트를 처리하려면, 각 컴포넌트에 이벤트 리스너를 추가해야 합니다. 이벤트 리스너는 컴포넌트가 발생시키는 이벤트를 감지하고 처리하는 역할을 합니다.

button.addClickListener(e -> {
    Notification.show("버튼 클릭됨!");
});

textField.addValueChangeListener(e -> {
    String value = e.getValue();
    Notification.show("입력값: " + value);
});

위의 예제에서는 버튼과 텍스트 필드에 각각 클릭 이벤트 및 값 변경 이벤트 리스너를 추가하였습니다. 각 이벤트가 발생하면 Notification.show()를 사용하여 메시지를 표시합니다.

참고 자료