0
我正在使用Scene Builder和jdk8創建Java Fx應用程序。我有各種文本字段來查找數字輸入。一旦文本框失去焦點,我希望能夠格式化這些文本框。JavaFx TextField焦點丟失格式化
我一直在使用DecimalFormat df = new DecimalFormat(「###### 0.00」);總計文本字段的結果,但不在輸入文本字段上。
任何幫助非常感謝。
我正在使用Scene Builder和jdk8創建Java Fx應用程序。我有各種文本字段來查找數字輸入。一旦文本框失去焦點,我希望能夠格式化這些文本框。JavaFx TextField焦點丟失格式化
我一直在使用DecimalFormat df = new DecimalFormat(「###### 0.00」);總計文本字段的結果,但不在輸入文本字段上。
任何幫助非常感謝。
TextField tf1=new TextField();
TextField tf2=new TextField();
TextField tf3=new TextField();
// add focus listener to all textFields
tf1.focusedProperty().addListener(new TextFieldListener(tf1));
tf2.focusedProperty().addListener(new TextFieldListener(tf2));
tf3.focusedProperty().addListener(new TextFieldListener(tf3));
類實現的ChangeListener
class TextFieldListener implements ChangeListener<Boolean> {
private final TextField textField ;
TextFieldListener(TextField textField) {
this.textField = textField ;
}
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if(!newValue) // check if focus gained or lost
{
this.textField.setText(getFormattedText(this.textField.getText());
}
}
public String getFormatedText(String str)
{
//return formated text
}
}
final ChangeListener<? super Boolean> focusListener = (o,ov,nv)->{
if(!nv){
TextField tf = (TextField)((ReadOnlyBooleanPropertyBase)o).getBean();
//put your code here
}
}
tf1.focusedProperty().addListener(focusListener);
tf2.focusedProperty().addListener(focusListener);
tf3.focusedProperty().addListener(focusListener);
[添加的ChangeListener(http://stackoverflow.com/a/16971194/1315392),並調用您的格式功能丟失焦點時 – vinay 2014-09-22 13:05:17
@vinay - 我是新來的事件處理,到現在只需要處理按鈕操作。我已經看過重點聽衆,並知道有一個重點獲得和丟失的方法,但我不確定如何實施它們。 – Decom1 2014-09-22 13:12:28