JavaFX用JavaFX StringBinding中的点(。)替换逗号(,)

时间:2017-05-03 02:34:48

标签: java javafx binding numbers format

  

我的目标是什么:

我正在寻找一种在Java中添加(。)大数字的方法。经过研究,我做了以下方法:

/**
  * @param number
  * @return A number with more than 3 digits [ Example 1000 as 1.000] with dots every 3 digits
 */
 public static String getNumberWithDots(int number) {
  return String.format(Locale.US, "%,d", number).replace(",", ".");
 }
  

问题:

现在我在JavaFX中有一个Label。我们将其命名为label。实际上我想将它的文本绑定到SimpleIntegerProperty让它命名为totalCats,但我想格式化文本,以便它实际上符合上述方法。

我的意思是,如果 totalCats 1000 ,我希望标签显示 1.000 。到目前为止,我只实现了 1,000 ,但我不知道如何用(。)替换(,)因为StringBinding没有替换方法:

label.textProperty().bind(totalCatsProperty().asString(Locale.US, "%,d"));
  

最后:

感谢任何帮助:)

1 个答案:

答案 0 :(得分:2)

在这种情况下,

Bindings::create****Binding非常有用。

label.textProperty().bind(Bindings.createStringBinding(
        () -> String.format(Locale.US, "%,d", totalCatsProperty().get()).replace(",", "."),
        totalCatsProperty()));