[java] JFoenix를 이용하여 맞춤 유효성 검사 추가하기

JFoenix는 JavaFX를 대한 Material Design 구현체입니다. 이 글에서는 JFoenix를 이용하여 JavaFX 애플리케이션에 맞춤 유효성 검사를 추가하는 방법에 대해 알아보겠습니다.

1. JFoenix 라이브러리 추가하기

먼저, JFoenix를 사용하기 위해 Maven 또는 Gradle을 통해 JFoenix를 프로젝트에 추가해야 합니다. 다음은 Maven을 사용하는 경우의 예입니다.

<dependency>
    <groupId>com.jfoenix</groupId>
    <artifactId>jfoenix</artifactId>
    <version>9.0.9</version>
</dependency>

2. JFoenix 컨트롤 설정하기

JFoenix를 사용한 텍스트 필드, 버튼 등의 컨트롤을 생성하고 유효성 검사를 적용할 수 있습니다. 다음은 JFoenix를 사용하여 텍스트 필드에 유효성 검사를 추가하는 예입니다.

import com.jfoenix.controls.JFXTextField;
import com.jfoenix.validation.NumberValidator;
import com.jfoenix.validation.RequiredFieldValidator;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class App extends Application {

    @Override
    public void start(Stage stage) {
        JFXTextField textField = new JFXTextField();
        RequiredFieldValidator validator = new RequiredFieldValidator();
        validator.setMessage("필수 입력 항목입니다.");
        textField.getValidators().add(validator);
        textField.focusedProperty().addListener((o, oldVal, newVal) -> {
            if (!newVal) {
                textField.validate();
            }
        });

        VBox root = new VBox(textField);
        Scene scene = new Scene(root, 300, 200);
        stage.setScene(scene);
        stage.show();
    }

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

3. 유효성 검사 사용하기

유효성 검사를 사용하기 위해서는 해당 컨트롤의 validators 리스트에 검사기를 추가하고, 컨트롤의 validate() 메소드를 호출해야 합니다. 유효성 검사 결과는 isValid() 메소드를 통해 확인할 수 있습니다.

위의 예시에서는 RequiredFieldValidator를 사용하여 필수 입력 항목을 검사하고 있습니다. 필수 입력 항목이 비워져 있을 경우 에러 메시지를 표시합니다. 일반적으로 필요한 유효성 검사기는 JFoenix의 ValidationFacade 클래스에 포함되어 있으며, 이를 사용하여 다양한 종류의 유효성 검사를 적용할 수 있습니다.

결론

JFoenix를 사용하여 JavaFX 애플리케이션에 맞춤 유효성 검사를 추가할 수 있습니다. 위의 예제를 통해 JFoenix의 JFXTextField 컨트롤을 사용하여 유효성 검사를 적용하는 방법을 살펴보았습니다. 유효성 검사는 사용자가 입력한 데이터의 정확성을 보장하기 위해 매우 중요한 요소입니다. JFoenix를 사용하여 이를 간편하게 구현할 수 있습니다.

참고 자료