2016-03-04 52 views
0

我有一个java fxml应用程序,其中有一个字段,用户可以放置他的iban号码。更改TextFormatter中的文本导致递归调用

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功能上的改变事件也被解雇。

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

回答

0

尝试将其设置为TextFormatter

if(text.length() > 0 && text.length() % 4 == 0){ 
     String txt = text + " "; 
     t.setText(txt); 
} 
+0

不工作之前的text空白追加。将其设置为一个变量或将其直接赋予该函数是相等的。 – mimo