1
如何在验证多个输入字段时避免重复代码,如TextField
s,DatePicker
s,ChoiceBox
es?以下代码属于StageAddController
用于监听和验证输入的服务类别。当焦点丢失且字段为空时,字段边框变为红色。如何在验证多个输入字段时避免重复的代码?
public void validateForEmptyTextField(TextField textField, PseudoClass errorClass){
textField.focusedProperty().addListener((arg0, oldValue, newValue) -> {
if (!newValue) { //when focus lost
if(textField.getText().trim().isEmpty()){
textField.pseudoClassStateChanged(errorClass, true);
}
else
textField.pseudoClassStateChanged(errorClass, false);
}
});
}
public void validateForEmptyDatePicker (DatePicker datePicker, PseudoClass errorClass){
datePicker.focusedProperty().addListener((arg0, oldValue, newValue) -> {
if (!newValue) { //when focus lost
if(datePicker.getValue() == null){
datePicker.pseudoClassStateChanged(errorClass, true);
}
else
datePicker.pseudoClassStateChanged(errorClass, false);
}
});
}
public void validateForEmptyChoiceBox (ChoiceBox<String > stringChoiceBox, PseudoClass errorClass){
stringChoiceBox.focusedProperty().addListener((arg0, oldValue, newValue) -> {
if (!newValue) { //when focus lost
if(stringChoiceBox.getValue() == null){
stringChoiceBox.pseudoClassStateChanged(errorClass, true);
}
else
stringChoiceBox.pseudoClassStateChanged(errorClass, false);
}
});
}