限制用户在javafx中输入最多3个字符

Roc*_*cky 1 javafx javafx-8

我是javaFx的新手,所以请忽略我在这里的愚蠢问题我要验证(限制)用户输入3个字符(如果用户输入更多输入,则不允许或3个字符后,后者应该可见)我发现很多验证的解决方案,但它不限制最多3个字符,也不会有点混淆理解这是我的代码.

public class editController {
 @FXML
 private TextField countrycode;
  public void add(ActionEvent event) {
    String ADD=countrycode.getText();
    try {
        if(ADD.isEmpty()){
                Alert alert=new Alert(Alert.AlertType.ERROR);
                alert.setHeaderText(null);
                alert.setContentText("Please Fill All DATA");
                alert.showAndWait();
                return;
        }


        FXMLLoader loader =new FXMLLoader();
        loader.load(getClass().getResource("/region/newCountry.fxml").openStream());
Run Code Online (Sandbox Code Playgroud)

Key*_*eri 6

使用textProperty Listener进行验证,如:

countrycode.textProperty().addListener(new ChangeListener<String>() {
        public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
            if (newValue.length() > 3) {
                countrycode.setText(oldValue);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

或者获取字符串长度并检查它

int length = ADD.length();
if (length > 3) {
    System.out.println("Please Enter Lessthen 3 character");
}
Run Code Online (Sandbox Code Playgroud)