У меня есть ComboBox
и Textfield
, мне нужно, чтобы при выборе «букв» в ComboBox
Textfield
принимались только буквы, а при выборе «цифр» в ComboBox
в Textfield
принимает только номера
JDK jdk1.8.0_201:
.
.
.
oneComboBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> ov, String preview, String last) {
if(last.equals("Letter")) {
codeTextField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!newValue.matches("-?([0-9]*)?")) {
codeTextField.setText(oldValue);
}
}
});
}else if(last.equals("Number")) {
codeTextField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!newValue.matches("\\sa-zA-Z*")) {
codeTextField.setText(newValue.replaceAll("[^\\sa-zA-Z]", ""));
}
}
});
}
}
});
.
.
.