ControlsFX:验证结果
ControlsFX: Validation result
我想在 JavaFx
中使用 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
是否为空
您的 isValid
变量和 if
语句实际上没有做任何事情。 ValidationSupport
包含一个 observable invalid
property,你可以用它来注册监听器:
support.invalidProperty().addListener((obs, wasInvalid, isNowInvalid) -> {
if (isNowInvalid) {
System.out.println("Invalid");
} else {
System.out.println("Valid");
}
});
或(可能更方便)注册绑定:
Button okButton = new Button("OK");
okButton.disableProperty().bind(support.invalidProperty());
最后一个代码片段将确保 okButton
仅在文本字段不为空时启用。
我想在 JavaFx
中使用 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
是否为空
您的 isValid
变量和 if
语句实际上没有做任何事情。 ValidationSupport
包含一个 observable invalid
property,你可以用它来注册监听器:
support.invalidProperty().addListener((obs, wasInvalid, isNowInvalid) -> {
if (isNowInvalid) {
System.out.println("Invalid");
} else {
System.out.println("Valid");
}
});
或(可能更方便)注册绑定:
Button okButton = new Button("OK");
okButton.disableProperty().bind(support.invalidProperty());
最后一个代码片段将确保 okButton
仅在文本字段不为空时启用。