2016-03-04 51 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