如何格式化文本字段的文本? JavaFX的(How to format text of Text

2019-10-23 19:21发布

例如,如果我进入32164578542324236.97325074,这个数字应显示在像32,164,578,542,324,236.97325074一个文本字段。 我试图处理这个问题,但没有成功:

    inputField.textProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
            BigDecimal bd = new BigDecimal(newValue);
            NumberFormat formatter = NumberFormat.getNumberInstance();             
            inputField.setText(formatter.format(newValue));
        }
    });

也许这将是更好地使用inputField.setTextFormatter(); 但我不熟悉这个方法。 提前致谢!

Answer 1:

尝试:

BigDecimal bd = new BigDecimal(newValue);
DecimalFormat formatter  = new DecimalFormat(",###");// seperate them by ',' while digits after '.' are excluded
String newestValue = formatter.format(bd)+newValue.substring(newValue.indexOf("."));// concatenate with the digits after '.'
inputField.setText(newestValue);


文章来源: How to format text of TextField? JavaFX