更改TextFormatter中的文本会导致递归调用

时间:2016-03-04 13:27:23

标签: java fxml text-formatting

我有一个java fxml应用程序,其中有一个用户可以输入他的iban号码的字段。

在4个字符后,应自动添加一个空格。

public TextFormatter.Change apply(TextFormatter.Change t) {
    String text = t.getControlNewText();
    if(text.length() > 0 && text.length() % 4 == 0)
        t.setText(text + " ");
    return t;
}

但是当我输入1234时,它返回1231234 所以我认为当我使用t.setText函数时,也会触发change事件。

是否可以阻止此调用,或者无法格式化TextFormatter中的文本?

1 个答案:

答案 0 :(得分:0)

在将text设置为TextFormatter

之前,尝试将if(text.length() > 0 && text.length() % 4 == 0){ String txt = text + " "; t.setText(txt); } 添加为空白
HtmlNode