2016-12-19 1 views
1

JavaFxControlsFX을 사용하여 유효성을 검사하고 싶습니다. 내 코드는 다음과 같다 :ControlsFX : 유효성 검사 결과

ValidationSupport support = new ValidationSupport(); 
boolean isValid = true; 
if(textField.getText().trim().isEmpty()) isValid = false; 
support.registerValidator(testField, Validator.createEmptyValidator("This field is required!")); 

것이 가능 if 조건을 생략하고 textField

답변

5

귀하의 isValid 변수와 if 문은 때로 믿을 검증 지원에서 비어 있는지 여부를 추출 할 경우 내 질문은 정말로 아무 것도하지 않습니다.

support.invalidProperty().addListener((obs, wasInvalid, isNowInvalid) -> { 
    if (isNowInvalid) { 
     System.out.println("Invalid"); 
    } else { 
     System.out.println("Valid"); 
    } 
}); 

또는 (아마도 더 편리하게) 등록 바인딩 :이 마지막 코드는 okButton을 보장

Button okButton = new Button("OK"); 
okButton.disableProperty().bind(support.invalidProperty()); 

텍스트 경우에만 활성화되는 ValidationSupport는 당신이 리스너를 등록 할 수있는 관찰 invalid property 포함 필드가 비어 있지 않습니다.

+0

유효성을 검사 할 TextField가 많은 경우 적용 방법 (대화 상자 창이 닫히지 않도록 조건이 작성되었습니다) –

+0

각 텍스트 필드에 대해 유효성 검사기를 '지원'으로 등록하면됩니다. –

관련 문제